PHPMailer不能与gmail一起使用

时间:2014-12-04 05:16:57

标签: php ssl gmail wampserver smtpd

在尝试让我的PHPMailer运行gmail几天后,我必须在这里找到一些帮助。我几乎读到了我在这里或谷歌所能找到的一切,但直到现在,这些想法都没有帮助。 我在用 * Windows 7 Home Basic * Wampserver 2.2与PHP vers。 PHP版本5.4.3   所有必要的扩展都设置为e。 G。 php_opensll * PHPMailer 5.2.9

这是我正在使用的脚本:

<?php
//require 'PHPMailerAutoload.php';                                              // <<== I have tried this also - no sucess

require 'class-phpmailer.php';
require "class-smtp.php"; //"PHPMailerAutoload.php";
// $mail->PluginDir //WB, 30 Nov 2014:omited if all files from phpmailer are in the same folder
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->Mailer = 'smtp';
$mail->SMTPAuth = true;
// I have tried both - TLS and SSL - with the required ports ==>> both are not working 
$mail->Port = 465;
$mail->SMTPSecure = 'ssl';
// or try these settings (worked on XAMPP and WAMP):
//$mail->Port = 587;
//$mail->SMTPSecure = 'tls';

$mail->Username = "wie****@gmail.com";      //my password ==>> works if I make a login oline to my account
$mail->Password = "*************";  //my password ==>> works if I make a login oline to my account

$mail->SMTPDebug  = 2;                      // <<== enables SMTP debug information (for testing)

$mail->IsHTML(true);    // if you are going to send HTML formatted emails
$mail->SingleTo = true; // if you want to send a same email to multiple users. multiple emails will be sent one-by-one.

$mail->From = "wie****@gmail.com";                  //my gmail mail account
$mail->FromName = "My Name";

$mail->addAddress("art******@yahoo.com","art******"); //my yahoo mail account
//$mail->addAddress("user.2@gmail.com","User 2");

//$mail->addCC("user.3@ymail.com","User 3");
//$mail->addBCC("user.4@in.com","User 4");

$mail->Subject = "Testing PHPMailer with localhost";
$mail->Body = "Hi,<br /><br />This system is working perfectly.";

if(!$mail->Send())
    echo "Message was not sent <br />PHPMailer Error: " . $mail->ErrorInfo;
else
    echo "Message has been sent";
?>

我正在尝试我在网上找到的任何变化,但没有任何作用。

我试过了 - &#39; PHPMailerAutoload.php&#39;和&#39; class.phpmailer.php&#39;作为要求的课程 - “$ mail-&gt; SMTPSecure =&#39; ssl&#39;;”和“$ mail-&gt; Port = 465;”  以及 - “$ mail-&gt; SMTPSecure =&#39; tls&#39;;”和“$ mail-&gt; Port = 587;”

以下是调试日志文件:

  使用带端口587的TLS时的

Debug-Log

     

SMTP - &gt; FROM SERVER:220 mx.google.com ESMTP cq6sm24503844pad.30 -   gsmtp SMTP - &gt; FROM SERVER:250-mx.google.com为您服务,   [121.54.112.183] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS   250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 SMTP    - &GT; FROM SERVER:220 2.0.0准备启动TLS SMTP - &gt;来自服务器:250-mx.google.com为您服务,[121.54.112.183] 250-SIZE 35882577   250-8BITMIME 250-AUTH登录平台XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN   OAUTHBEARER 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250   SMTPUTF8 SMTP - &gt;错误:服务器不接受密码:534-5.7.14   请通过网络浏览器和534-5.7.14登录,然后重试。   534-5.7.14了解更多信息,请点击534 5.7.14   https://support.google.com/mail/bin/answer.py?answer=78754   cq6sm24503844pad.30 - gsmtp SMTP - &gt;从服务器:250 2.1.5刷新   cq6sm24503844pad.30 - gsmtp SMTP - &gt;从服务器:530-5.5.1   需要验证。在530 5.5.1了解更多信息   http://support.google.com/mail/bin/answer.py?answer=14257   cq6sm24503844pad.30 - gsmtp SMTP - &gt;错误:不接受邮件   服务器:530-5.5.1需要验证。在530 5.5.1了解更多信息   http://support.google.com/mail/bin/answer.py?answer=14257   cq6sm24503844pad.30 - gsmtp以下发件人地址失败:   wiedeia@gmail.com:MAIL未被服务器接受,530,5.5.1   需要验证。在530 5.5.1了解更多信息   http://support.google.com/mail/bin/answer.py?answer=14257   cq6sm24503844pad.30 - gsmtp

     

SMTP服务器错误:5.5.1必需的身份验证。在530了解更多信息   5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 cq6sm24503844pad.30 - gsmtp消息未发送PHPMailer错误:   以下地址失败:wiedeia@gmail.com:MAIL未被接受   从服务器,530,5.5.1验证必需。在530 5.5.1了解更多信息   http://support.google.com/mail/bin/answer.py?answer=14257   cq6sm24503844pad.30 - gsmtp

     

SMTP服务器错误:5.5.1必需的身份验证。在530了解更多信息   5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 cq6sm24503844pad.30 - gsmtp

     

SMTP服务器错误:5.5.1必需的身份验证。在530了解更多信息   5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 cq6sm24503844pad.30 - gsmtp

     

将SSL与端口465一起使用时的调试日志

     

SMTP - &gt; FROM SERVER:220 mx.google.com ESMTP kj9sm24304154pbc.37 -   gsmtp SMTP - &gt; FROM SERVER:250-mx.google.com为您服务,   [121.54.112.183] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN   XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER 250-ENHANCEDSTATUSCODES   250-PIPELINING 250-CHUNKING 250 SMTPUTF8 SMTP - &gt;错误:密码没有   从服务器接受:534-5.7.14请通过您的网络浏览器登录   和534-5.7.14然后再试一次。 534-5.7.14了解更多信息,请点击534 5.7.14   https://support.google.com/mail/bin/answer.py?answer=78754   kj9sm24304154pbc.37 - gsmtp SMTP - &gt;从服务器:250 2.1.5刷新   kj9sm24304154pbc.37 - gsmtp SMTP - &gt;从服务器:530-5.5.1   需要验证。在530 5.5.1了解更多信息   http://support.google.com/mail/bin/answer.py?answer=14257   kj9sm24304154pbc.37 - gsmtp SMTP - &gt;错误:不接受邮件   服务器:530-5.5.1需要验证。在530 5.5.1了解更多信息   http://support.google.com/mail/bin/answer.py?answer=14257   kj9sm24304154pbc.37 - gsmtp以下发件人地址失败:   wiedeia@gmail.com:MAIL未被服务器接受,530,5.5.1   需要验证。在530 5.5.1了解更多信息   http://support.google.com/mail/bin/answer.py?answer=14257   kj9sm24304154pbc.37 - gsmtp

     

SMTP服务器错误:5.5.1必需的身份验证。在530了解更多信息   5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 kj9sm24304154pbc.37 - gsmtp消息未发送PHPMailer错误:   以下地址失败:wiedeia@gmail.com:MAIL未被接受   从服务器,530,5.5.1验证必需。在530 5.5.1了解更多信息   http://support.google.com/mail/bin/answer.py?answer=14257   kj9sm24304154pbc.37 - gsmtp

     

SMTP服务器错误:5.5.1必需的身份验证。在530了解更多信息   5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 kj9sm24304154pbc.37 - gsmtp

     

SMTP服务器错误:5.5.1必需的身份验证。在530了解更多信息   5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 kj9sm24304154pbc.37 - gsmtp

我检查了gmail提供的调试链接。但没有任何作用。当我使用相同的用户和密码信息登录我的帐户时,它可以正常工作。

我也遵循网上发现的建议,允许安全性较低的应用。此外,我允许使用链接https://accounts.google.com/DisplayUnlockCaptcha

访问Google帐户

然后我用端口扫描器检查端口,两个端口都被提到关闭。但我猜他们会在应用程序要求时打开。使用telnet smtp.gmail.com进行检查已成功。

我在没有运行任何防病毒和防火墙的情况下尝试了该脚本 - 没有结果。

慢慢慢慢地,我对这个问题感到有点生气。也许有人可以帮助我。

安德烈亚斯

1 个答案:

答案 0 :(得分:0)

亚瑟,知道正确的细节,回答是很重要的。我的意思是,如果您启用了两个因子身份验证,则需要设置一个应用程序专用密码来代替您的电子邮件帐户密码。

您可以按照以下说明生成应用专用密码:https://support.google.com/accounts/answer/185833

然后将$ mail-&gt;密码设置为您的应用程序专用密码。

随机解决:有时候,我们必须为某些帐户启用两步验证然后它才能正常工作(我不知道其背后的正确原因,但这适用于某些帐户)

但是从外面来看,这里有一些提示来解决这个问题: 1)再次检查[你说你检查过]你的PHP上正确配置了SSL(处理它的模块默认不安装在PHP上。你必须在phph.ini中检查你的配置)。 2)检查您的防火墙是否允许拨打所需端口的呼叫(此处为465或587)。使用telnet这样做。如果端口未打开,则需要sysdmin的一些支持来设置配置。 3)打开此https://support.google.com/mail/answer/14257?hl=en并选择按照说明操作,google服务器阻止来自未知服务器的任何尝试,因此一旦您点击验证码检查,每件事情都会没问题

我希望你能快点解决这个问题!