Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP邮件GMAIL SMTP错误_Php_Email_Smtp_Phpmailer - Fatal编程技术网

PHP邮件GMAIL SMTP错误

PHP邮件GMAIL SMTP错误,php,email,smtp,phpmailer,Php,Email,Smtp,Phpmailer,我目前正在测试我的项目,并已设置了PHPMAILER(5.2.9版)库,希望使用Gmail SMTP生成电子邮件 我已经在本地系统上设置了脚本,但是当脚本执行时,它会一直等待本地主机响应,即使我已经指定了smtp服务器地址 我目前正在使用以下工具: PHP版本5.4.7 xampp版本1.8.1(我知道它已经过时了) PHP编译器版本-5.2.9 以下是脚本: require 'phpmailer/PHPMailerAutoload.php'; $mail = new PHPMailer; $

我目前正在测试我的项目,并已设置了PHPMAILER(5.2.9版)库,希望使用Gmail SMTP生成电子邮件

我已经在本地系统上设置了脚本,但是当脚本执行时,它会一直等待本地主机响应,即使我已经指定了smtp服务器地址

我目前正在使用以下工具:

PHP版本5.4.7 xampp版本1.8.1(我知道它已经过时了) PHP编译器版本-5.2.9

以下是脚本:

require 'phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer;

$mail->SMTPDebug = 3;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'xxxx@gmail.com';
$mail->Password = 'xxx';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

$mail->From = 'xxx@gmail.com';
$mail->FromName = 'test';
$mail->addAddress('xxx@outlook.com');
$mail->WordWrap = 50;
$mail->isHTML(true);
$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}
需要'phpmailer/phpmailerautoad.php';
$mail=新的PHPMailer;
$mail->SMTPDebug=3;
$mail->isSMTP();
$mail->Host='smtp.gmail.com';
$mail->SMTPAuth=true;
$mail->Username=xxxx@gmail.com';
$mail->Password='xxx';
$mail->SMTPSecure='tls';
$mail->Port=587;
$mail->Fromxxx@gmail.com';
$mail->FromName='test';
$mail->addAddress('xxx@outlook.com');
$mail->WordWrap=50;
$mail->isHTML(true);
$mail->Subject='主题在这里';
$mail->Body='这是以粗体显示的HTML邮件正文!';
$mail->AltBody='这是非HTML邮件客户端的纯文本正文';
如果(!$mail->send()){
echo“无法发送消息”;
回显“邮件错误:”。$mail->ErrorInfo;
}否则{
回音“消息已发送”;
}
谢谢

您的代码应该是:

require 'phpmailer/PHPMailerAutoload.php';

  $mail = new PHPMailer;
  //Tell PHPMailer to use SMTP
  $mail->isSMTP();
  //Enable SMTP debugging
  // 0 = off (for production use)
  // 1 = client messages
  // 2 = client and server messages
  $mail->SMTPDebug = 2;
  //Ask for HTML-friendly debug output
  $mail->Debugoutput = 'html';
  //Set the hostname of the mail server
  $mail->Host = 'smtp.gmail.com';
  //Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
  $mail->Port = 587;
  $mail->SMTPSecure = 'tls';
  $mail->SMTPAuth = true;
  $mail->Username = "username@gmail.com";
  $mail->Password = "yourpassword";

  //Set who the message is to be sent from
  $mail->setFrom('from@example.com', 'First Last');
  $mail->addReplyTo('replyto@example.com', 'First Last');
  $mail->addAddress('whoto@example.com', 'John Doe');
  $mail->WordWrap = 50;                                 
  $mail->isHTML(true);                                  
  $mail->Subject = 'Here is the subject';
  $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
  $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

  if(!$mail->send()) {
      echo 'Message could not be sent.';
      echo 'Mailer Error: ' . $mail->ErrorInfo;
  } else {
      echo 'Message has been sent';
  } 
需要'phpmailer/phpmailerautoad.php';
$mail=新的PHPMailer;
//告诉PHPMailer使用SMTP
$mail->isSMTP();
//启用SMTP调试
//0=关闭(用于生产使用)
//1=客户端消息
//2=客户端和服务器消息
$mail->SMTPDebug=2;
//请求HTML友好的调试输出
$mail->Debugoutput='html';
//设置邮件服务器的主机名
$mail->Host='smtp.gmail.com';
//为经过身份验证的TLS(又称RFC4409 SMTP提交)设置SMTP端口号-587
$mail->Port=587;
$mail->SMTPSecure='tls';
$mail->SMTPAuth=true;
$mail->Username=”username@gmail.com";
$mail->Password=“yourpassword”;
//设置要从谁发送消息
$mail->setFrom('from@example.com","最后一次",;
$mail->addReplyTo('replyto@example.com","最后一次",;
$mail->addAddress('whoto@example.com","无名氏",;
$mail->WordWrap=50;
$mail->isHTML(true);
$mail->Subject='主题在这里';
$mail->Body='这是以粗体显示的HTML邮件正文!';
$mail->AltBody='这是非HTML邮件客户端的纯文本正文';
如果(!$mail->send()){
echo“无法发送消息”;
回显“邮件错误:”。$mail->ErrorInfo;
}否则{
回音“消息已发送”;
} 

$mail->SMTPDebug=3没有选项

所以问题似乎出在php.ini文件中的设置上。联合国发表评论;extension=php_openssl.dll,方法是删除前面的;它成功了。

确保您的phpmailer脚本运行正常,如果mailer没有问题,请使用您的gmail帐户登录,然后转到->gmail设置。 现在检查gmail设置中的允许不太安全选项。 默认情况下,它处于关闭状态

允许不太安全的应用:关闭

确保此设置处于启用状态

完成后,现在从浏览器运行脚本

如果找不到链接,请单击此处继续

尝试使用TSL+Gmail解决SMTP+问题

有。还有4.hi hardik,borwser一直在等待本地主机的响应。我等了几分钟,但没有回应。如果我把“tls”改为“starttls”,那么它会给出一个错误,但是由于字符长度的限制,我无法在这里发布它。但是最后它说:邮件无法发送。邮件错误:SMTP connect()失败。您的代码看起来正常,但您需要发布实际错误。嗨,synchro,borwser一直在等待本地主机的响应。我等了几分钟,但没有回应。如果我把“tls”改为“starttls”,那么它会给出一个错误,但是由于字符长度的限制,我无法在这里发布它。但最后它说:邮件无法发送。邮件错误:SMTP connect()失败。不要在评论中发布这样的大东西-它们不是很可读。改为编辑您的问题。在本例中,您的PHP似乎是在没有SSL的情况下编译的,因此在添加SSL之前,您无法做很多事情。设置应为
tls
ssl
starttls
不是一个有效的选项。感谢提示同步器。我是新来的。将继续编辑问题。