PHPMailer:4个月内一切正常,但突然SMTP connect()失败了

时间:2016-08-16 15:33:19

标签: php phpmailer

我真的不知道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

感谢您的回答。我真的很感激。

3 个答案:

答案 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命令的此响应表明身份验证   由于身份验证凭据无效或不足而失败。在   在这种情况下,客户端应该要求用户提供新的凭据   (例如通过提供密码对话框)。