2013-10-02 109 views
5

我正在尝试创建一个处理PayPal付款的测试网站。我试图在成功付款(这是我的IPN)后使用PHP SwiftMailer向用户发送电子邮件。PHP SwiftMailer无法在SMTP服务器上进行身份验证

这里是我的输运代码:

 $transport = Swift_SmtpTransport::newInstance('smtp.googlemail.com', 465, 'ssl') 
      ->setUsername('[email protected]') 
      ->setPassword('xxxx');  

    $mailer = Swift_Mailer::newInstance($transport); 

我试图用Googlemail电子邮件并在共享服务器托管之下,并都具有让出一个错误的问题另一封电子邮件。

不幸的是,我得到这个错误通常:

Fatal error: Uncaught exception 'Swift_TransportException' with message 'Failed to authenticate on SMTP server with username "[email protected]" using 2 possible authenticators' in /home/xxx/public_html/paypal/lib/classes/Swift/Transport/Esmtp/AuthHandler.php:184 

    Stack trace: 

    #0 /home/xxx/public_html/paypal/lib/classes/Swift/Transport/EsmtpTransport.php(312): Swift_Transport_Esmtp_AuthHandler->afterEhlo(Object(Swift_SmtpTransport)) 

    #1 /home/xxx/public_html/paypal/lib/classes/Swift/Transport/AbstractSmtpTransport.php(120): Swift_Transport_EsmtpTransport->_doHeloCommand() 

    #2 /home/xxx/public_html/paypal/lib/classes/Swift/Mailer.php(80): Swift_Transport_AbstractSmtpTransport->start() 

    #3 /home/xxx/public_html/paypal/ipn.php(113): Swift_Mailer->send(Object(Swift_Message)) 

    #4 /home/mctikudo/public_html/paypal/ipn.php(46): sendMail(Resource id #3, Array) 

    #5 {main} thrown in /home/xxx/public_html/paypal/lib/classes/Swift/Transport/Esmtp/AuthHandler.php on line 184 

我已经做了一些研究,并尝试了几种办法,我的交通环境。但似乎还没有任何工作。直到我试图将我的IPN代码放到另一个托管公司的另一台服务器上,并且令人惊讶的是,它工作正常。与另一个代码相同的代码。

这就是为什么我猜想有其他服务器中有东西必须设置或什么的。

是否有我需要确保在我的服务器上启用SwiftMailer的工作?

+0

有些域不要让其他域发送邮件,一次只能发送电子邮件至“[email protected]”。检查这里是不是这种情况。例如awardspace.net。 – Jinandra

+3

我通过在这里应用答案使其工作:http:// stackoverflow。com/a/7170687/882773 – Atasha

+1

我在此处按照以下建议进行了此项工作:http://stackoverflow.com/questions/7170607/hostgator-wont-send-mail-via-php-swiftmail-api/7170687#7170687 – Atasha

回答

18

这可能是旧的,但有人可能会通过此获得帮助。我也面临同样的问题,并在我的Gmail帐户上收到一封邮件,指出有人试图通过电子邮件客户端或其他网站破解您的帐户。 我搜索了一下,发现下面的做法可以解决这个问题。

转到https://accounts.google.com/UnlockCaptcha 并解锁您的帐户以便通过其他媒体/网站访问。

更新:2015年

此外,你可以试试这个,去https://myaccount.google.com/security#connectedapps 在底部,向右有一个选项“允许不够安全的应用”。如果它是“OFF”,则通过滑动按钮将其打开。

+0

谢谢!有效! – Robert

+0

这也适用于我。 – b85411

3

我知道这是旧的,但希望这指出某人在正确的方向。使用Mandrill和Swiftmailer组合时,我遇到了同样的问题。

我的问题是,服务器从端口587停止SMTP邮件,这是相对于FKA SMTP调整设置这是我的服务器上。

所以,如果你有交友,并且可以访问南国,尝试下调整看你的邮件设置,看是否传出SMTP邮件限制。其他选项是,也许你的服务器认为端口是可疑的。尝试更改端口,我发现我的托管公司有一个合适的端口列表。

+2

花了我整整一天的时间来解决这个问题。当启用此功能(FKA SMTP Tweak)时,会将传出SMTP连接重定向到本地邮件服务器。 root,exim和mailman仍然可以直接连接。 –

+0

改变了这一点,但还没有帮助。 – PlanetUnknown

+0

禁用FKA SMTP调整工作。 –

相关问题