使用SwiftMailer

时间:2015-08-19 16:19:17

标签: php email gmail swiftmailer

尝试使用我的GMail帐户从我的PHP application发送一封包含SwiftMailer的电子邮件时出现以下错误。

535-5.7.8 Username and Password not accepted

这是我的SwiftMailer代码:

$transporter = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
    ->setUsername('ayrshireminiscontact@gmail.com')
    ->setPassword('~password-in-here~');

$mailer  = Swift_Mailer::newInstance($transporter);
$message = Swift_Message::newInstance('Portfolio Enquiry')
    ->setFrom(array('ayrshireminiscontact@gmail.com' => 'CRMPicco Portfolio Enquiry'))
    ->setTo(array('picco@crmpicco.co.uk' => 'A name'))
    ->setBody($email_body);

$result = $mailer->send($message);

这是我的Apache错误日志和堆栈跟踪中的条目。

  

[Wed Aug 18 22:06:10.284728 2015] [:error] [pid 9298] [客户   10.0.0.1:64806] PHP致命错误:未捕获异常' Swift_TransportException'消息'预期响应代码250   但得到了代码" 535",带有消息" 535-5.7.8用户名和密码没有   公认。了解更多信息,请访问\ r \ n535 5.7.8   https://support.google.com/mail/answer/14257 gj13sm2191931wic.22 -   gsmtp \ r \ n"'在   /var/www/portfolio/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:383\nStack   追踪:\ n#0   /var/www/portfolio/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(281):   Swift_Transport_AbstractSmtpTransport-> _assertResponseCode(' 535-5.7.8   用户...',数组)\ n#1   /var/www/portfolio/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php(243):   Swift_Transport_AbstractSmtpTransport-> executeCommand(' RSET \ r \ n&#39 ;,   数组,数组)\ n#2   /var/www/portfolio/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php(54):   Swift_Transport_EsmtpTransport-> executeCommand(' RSET \ r \ n&#39 ;,   阵列)\ N#3   /var/www/portfolio/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php(176):   Swift_Transport_Esmtp_Auth_XOAuth2Authent in   /var/www/portfolio/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php   在第383行,引用者:https://crmpicco.dev/

我已尝试http://www.google.com/accounts/DisplayUnlockCaptcha,我可以通过网络浏览器登录该帐户,而不会出现任何问题。

这发生在我的本地开发机器和可公开访问的站点上。这是我的GMail帐户或我的实施的问题吗?

1 个答案:

答案 0 :(得分:6)

您需要allow access from less-secure apps,因为通过密码进行IMAP从根本上说是不安全的。 (它是不可撤销的)

更好的是,切换到OAuth身份验证。