【问题标题】:PHPMailer / SMTP Error but mail is still deliveredPHPMailer / SMTP 错误,但邮件仍在发送
【发布时间】:2018-02-02 16:53:33
【问题描述】:

最近我一直在记录来自 PHPMailer 的消息,以了解通过 Google Apps 帐户通过 SMTP 发送的失败的传出电子邮件。 $mail->ErrorInfo 属性返回:

SMTP Error: data not accepted.SMTP server error: DATA END command failed

奇怪的是,当我在 Google Apps 帐户上检查已发送的邮箱时,这些邮件仍然被成功接收和传递。并且错误没有任何可辨别的一致性 - 看起来可能是外发邮件的 3%。

我正在使用 PHPMailer-5.2.16。失败的消息没有什么特别之处,我可以以与成功相同的方式重新发送它们。

邮件功能配置所有内容,然后尝试发送消息并记录失败,如下所示:

if (!$mail->send()) {
    file_put_contents('mail.log', date('c') . ' ' . $mail->ErrorInfo . PHP_EOL, FILE_APPEND);
}

谁能想到在消息仍在传递时我会遇到这样的间歇性错误结果的原因吗?

【问题讨论】:

  • 也许您与 gmail 的网络连接不可靠? @Adern 的建议很好。除此之外,您使用的是旧的、有缺陷的、易受攻击的 PHPMailer 版本 - Get the latest
  • 谢谢 - 我考虑过这一点,但邮件正在送达这一事实表明一切正常。好吧,大部分都很好。是的,很好的建议。我会更新的。

标签: php email phpmailer


【解决方案1】:

可能在这里回答phpmailer-the-following-smtp-error-data-not-accepted

另外,设置 $mail->SMTPDebug = 2;看看它说了什么。可能是您超出了最大邮件大小。

欲了解更多信息,请访问https://github.com/PHPMailer/PHPMailer/issues/654

【讨论】:

  • 另外,我正在网上为您的问题寻找解决方案,我明白了这个错误可能是由于无效的电子邮件地址而发生的。看这里help.zoho.com/portal/community/topic/…
  • 感谢 Adern - 如果我能够始终如一地重现该问题,那么调试起来将是一件轻而易举的事。这与消息无关 - 正如我所说,这是一条常规消息,它将在后续尝试中成功,因此也排除了无效地址或与消息本身有关的任何事情。我已经进行了升级,增加了超时时间并进行了更详细的错误记录。此时只需要拭目以待
猜你喜欢
  • 2017-11-04
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 2018-09-10
  • 2016-08-14
  • 2010-11-03
  • 2017-01-19
相关资源
最近更新 更多