【发布时间】:2013-10-08 16:53:35
【问题描述】:
我正在尝试创建一个处理贝宝付款的测试站点。我正在尝试在成功付款后使用 PHP SwiftMailer 向用户发送电子邮件(这是我的 IPN)。
这是我的运输代码:
$transport = Swift_SmtpTransport::newInstance('smtp.googlemail.com', 465, 'ssl')
->setUsername('xxx@xxx.co.uk')
->setPassword('xxxx');
$mailer = Swift_Mailer::newInstance($transport);
我尝试使用 googlemail 和另一封托管在共享服务器下的电子邮件,但两者都出现了错误提示。
不幸的是,我遇到了这个常见的错误:
Fatal error: Uncaught exception 'Swift_TransportException' with message 'Failed to authenticate on SMTP server with username "xxx@xxx.co.uk" 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 正常工作吗?
【问题讨论】:
-
一些域不允许在其他域上发送邮件,一个只能发送电子邮件到“xyz@yourdomainname.com”。检查这里是否不是这种情况。例如 Awardspace.net。
-
我通过在此处应用答案使其工作:stackoverflow.com/a/7170687/882773
-
我按照这里的建议完成了这项工作:stackoverflow.com/questions/7170607/…
-
请参考我在不同帖子下给出的答案。 stackoverflow.com/a/26429962/3857499
标签: php email sendmail swiftmailer