PHPMailer : Everything works fine for 4 months, 但突然 SMTP connect() 失败

标签 php phpmailer

我真的不知道 PHPMailer、Mandrill 或我的托管帐户出了什么问题。过去 4 个月一切正常,但今天我收到此错误:

Message could not be sent.Mailer Error: SMTP connect() failed. 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

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

最佳答案

假设您设置脚本与 mandrill 对话(即您设置 $mail->Host = 'smtp.mandrillapp.com';,按照您链接到的示例),但是请注意,您已连接到 jkt03.dewaweb.com,这不是 mandrill 服务器(它看起来像是在印度尼西亚,因为您的域也在印度尼西亚),所以我猜您的 ISP 正在透明地重新路由你到他们自己的邮件服务器,当然你的山魈凭证在该服务器上不起作用。

他们可能更改了出站电子邮件策略,导致了此问题。这很常见 - GoDaddy 就是这样做的,并且这里有无数关于此的问题。

如果您运行的是 5.6 之前的 PHP,或者禁用了 TLS 证书验证(如 PHPMailer 文档所述),您无法检测到这种情况的发生,这就是为什么您不应该禁用它!这意味着您已经将山魈凭据泄露给了您的 ISP - 他们实际上正在对您进行中间人攻击!

我已编辑您的 SMTP 输出,因为它包含不 protected 密码。

关于PHPMailer : Everything works fine for 4 months, 但突然 SMTP connect() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38978988/

相关文章:

javascript - 如何使用 ajax 将 html 值保存到 MySQL?

php - curl 'malformed url'

javascript - 通过 phpmailer 发送电子邮件不会返回 Javascript 响应

PHP require_once php 路径?

php - 数据未存储在 PHP 站点的 mysql 数据库表中

php - 如何在php中获取二叉树中所有子项的计数

php - 规范化 PHP 中数组键的大小写

php - 带有 str_replace 的 HTML 电子邮件模板

php - 山魈轨道打开不工作

PHPMailer 电子邮件发送成功但未收到 (EC2)