我真的不知道PHPMailer,Mandrill或我的托管帐户有什么问题。过去4个月一切正常,但今天我收到了这个错误:
无法发送消息.Mailer错误:SMTP connect()失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
以及启用$mail->SMTPDebug = 2;
时的样子:
2016-08-16 15:30:08 SERVER -> CLIENT: 220-jkt03.dewaweb.com ESMTP Exim 4.87 #1
Tue, 16 Aug 2016 22:30:08 +0700 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail. 2016-08-16 15:30:08
CLIENT -> SERVER: EHLO komisian.com 2016-08-16 15:30:08
SERVER -> CLIENT: 250-jkt03.dewaweb.com Hello komisian.com [103.200.7.25] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING 250-AUTH PLAIN LOGIN 250-STARTTLS 250 HELP 2016-08-16 15:30:08
CLIENT -> SERVER: STARTTLS 2016-08-16 15:30:08
SERVER -> CLIENT: 220 TLS go ahead 2016-08-16 15:30:08
CLIENT -> SERVER: EHLO komisian.com 2016-08-16 15:30:08
SERVER -> CLIENT: 250-jkt03.dewaweb.com Hello komisian.com [103.200.7.25] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING 250-AUTH PLAIN LOGIN 250 HELP 2016-08-16 15:30:08
CLIENT -> SERVER: AUTH LOGIN 2016-08-16 15:30:12
SERVER -> CLIENT: 334 VXNlcm5hbWU6 2016-08-16 15:30:12
CLIENT -> SERVER: xxx 2016-08-16 15:30:12
SERVER -> CLIENT: 334 UGFzc3dvcmQ6 2016-08-16 15:30:12
CLIENT -> SERVER: xxx== 2016-08-16 15:30:15
SERVER -> CLIENT: 535 Incorrect authentication data 2016-08-16 15:30:15
SMTP ERROR: Password command failed: 535 Incorrect authentication data 2016-08-16 15:30:15 SMTP Error: Could not authenticate. 2016-08-16 15:30:15
CLIENT -> SERVER: QUIT 2016-08-16 15:30:15
SERVER -> CLIENT: 221 jkt03.dewaweb.com closing connection 2016-08-16 15:30:15
SMTP connect() failed.
https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Message could not be sent.Mailer Error: SMTP connect() failed.
https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
知道导致此错误的原因吗?这是我的托管帐户的错还是Mandrill的?我已经下载了最新版本的PHPMailer,但这就是我得到的结果。
仅供参考,我使用本教程进行了测试:https://mandrill.zendesk.com/hc/en-us/articles/205582147-How-to-Send-with-PHPMailer
感谢您的回答。我真的很感激。
答案 0 :(得分:2)
假设您设置脚本与mandrill交谈(即根据您链接到的示例设置$mail->Host = 'smtp.mandrillapp.com';
),但请注意您已连接到jkt03.dewaweb.com
,这是不是mandrill服务器(它看起来像在印度尼西亚,因为你的域名也是如此),所以我猜你的ISP透明地将你重新路由到他们自己的邮件服务器上,当然你的mandrill凭证不在#39;工作。
他们可能会更改出站电子邮件策略,从而导致此问题。这很常见--GoDaddy做到了这一点,关于这一点有很多问题。
如果您在5.6之前运行PHP,或已禁用TLS证书验证(如PHPMailer文档所述),则无法检测到这种情况,这就是您不应该禁用它的原因!这意味着你已经向你的ISP发放了你的mandrill凭证 - 他们实际上正在对你进行一次中间人攻击!
我已编辑了您的SMTP输出,因为它包含不受保护的密码。
答案 1 :(得分:1)
您的托管公司可能已更改其外发电子邮件策略或收紧垃圾邮件过滤:
ESMTP Exim 4.87#1星期二,2016年8月16日22:30:08 +0700 220-我们不 授权使用此系统来运输未经请求的,220和/或 批量电子邮件。
否则,您最近是否碰巧更改了密码?
服务器 - >客户端:535验证数据不正确2016-08-16 15:30:15
SMTP错误:密码命令失败:535不正确 认证数据
2016-08-16 15:30:15 SMTP错误:无法进行身份验证。 2016-08-16 15:30:15
答案 2 :(得分:1)
SMTP ERROR: Password command failed: 535 Incorrect authentication data 2016-08-16 15:30:15 SMTP Error: Could not authenticate. 2016-08-16 15:30:15
无论是什么,都与认证数据有关 - 仔细检查用户名/密码。
The whole 53x group of SMTP errors指的是用户名&密码。
RFC 4954描述了535 Authentication credentials invalid
对AUTH命令的此响应表明身份验证 由于身份验证凭据无效或不足而失败。在 在这种情况下,客户端应该要求用户提供新的凭据 (例如通过提供密码对话框)。