站点迁移到另一个服务器后,我们在通过 SMTP(一些定制的 PHPMailer)使用 PHP 发送电子邮件时遇到问题。我们可以向大多数地址发送电子邮件,但也有一些错误,如下所示。有没有人有任何建议什么是错的?是 SMTP 服务器问题还是脚本问题?SMTP 不应该返回一些特定的错误吗?SMTP -> get_lines(): $data was ""SMTP -> get_lines(): $str is "220 mx.sitte.com.pl ESMTP Exim 4.90_1 Wed, 15 May 2019 12:16:46 +0200 "SMTP -> get_lines(): $data is "220 mx.sitte.com.pl ESMTP Exim 4.90_1 Wed, 15 May 2019 12:16:46 +0200 "SMTP -> FROM SERVER:220 mx.sitte.com.pl ESMTP Exim 4.90_1 Wed, 15 May 2019 12:16:46 +0200SMTP -> get_lines(): $data was ""SMTP -> get_lines(): $str is "250-mx.sitte.com.pl Hello mx.sitte.com.pl [5.187.55.123] "SMTP -> get_lines(): $data is "250-mx.sitte.com.pl Hello mx.sitte.com.pl [5.187.55.123] "SMTP -> get_lines(): $data was "250-mx.sitte.com.pl Hello mx.sitte.com.pl [5.187.55.123] "SMTP -> get_lines(): $str is "250-SIZE 52428800 "SMTP -> get_lines(): $data is "250-mx.sitte.com.pl Hello mx.sitte.com.pl [5.187.55.123] 250-SIZE 52428800 "SMTP -> get_lines(): $data was "250-mx.sitte.com.pl Hello mx.sitte.com.pl [5.187.55.123] 250-SIZE 52428800 "SMTP -> get_lines(): $str is "250-8BITMIME "SMTP -> get_lines(): $data is "250-mx.sitte.com.pl Hello mx.sitte.com.pl [5.187.55.123] 250-SIZE 52428800 250-8BITMIME "SMTP -> get_lines(): $data was "250-mx.sitte.com.pl Hello mx.sitte.com.pl [5.187.55.123] 250-SIZE 52428800 250-8BITMIME "SMTP -> get_lines(): $str is "250-PIPELINING "SMTP -> get_lines(): $data is "250-mx.sitte.com.pl Hello mx.sitte.com.pl [5.187.55.123] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING "SMTP -> get_lines(): $data was "250-mx.sitte.com.pl Hello mx.sitte.com.pl [5.187.55.123] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING "
2 回答
弑天下
TA贡献1818条经验 获得超8个赞
我认为你在这里混淆了两个问题。您的投递有两个阶段 - 从 PHPMailer 到您的邮件服务器,以及从您的邮件服务器到收件人的邮件服务器。从您的第一个调试日志中,我可以看到第一阶段似乎工作正常 - 消息被正确接受。后两个示例来自邮件服务器的日志,而不是 PHPMailer 输出,因此它们发生在第二阶段。
这意味着您的问题不在于 PHPMailer 也不在于您的脚本,而在于您的邮件服务器或其自身的网络连接。邮件服务器来来去去,SMTP 工作方式的一部分是处理错误、中断和延迟,这就是为什么将本地邮件服务器与 PHPMailer 一起使用是个好主意的原因(正如您正在做的那样)它可以处理此类问题而无需您担心。这确实意味着您应该密切注意您的邮件服务器配置及其网络连接(通过日志),并且实现一个退回处理程序也是一个好主意,这不是一项小任务,以便您的应用程序可以访问听说像这样的延迟错误。
证书验证失败(我不确定您为什么将其描述为成功)可能是由过时的 CA 证书引起的;更新您的操作系统包,或安装可信根证书的新副本(阅读 PHPMailer 故障排除指南了解更多信息)。最后一个看起来像一个不可靠的邮件服务器——你自己的邮件服务器应该稍后重试传递——这就是邮件服务器的用途。
另外两件小事:你只需要SMTPDebug = 2
解决这类问题;任何更高的东西都会产生不必要的噪音。您还在使用旧版本的 PHPMailer,因此请升级。
- 2 回答
- 0 关注
- 385 浏览
添加回答
举报
0/150
提交
取消