我在 Fedora 中安装了一个 Web 应用程序(LAMP 配置),它会不时发送电子邮件。PHP 调用配置为中继代理的 sendmail 实用程序。Sendmail 将电子邮件发送给 Exchange 服务器。
昨天 sendmail 停止发送电子邮件。日志(/var/log/messages、/var/log/maillog 等)中没有任何内容表明存在任何错误。服务器未重新启动,sendmail 服务运行良好并监听端口 25(使用 lsof 验证)。
我没有发现任何错误需要报告。电子邮件只是排队,而 sendmail 实用程序不会发送它们。在邮件日志中,电子邮件显示为“stat=queued”
我已经重新启动了服务器,重新启动了 sendmail 服务(没有显示任何错误),甚至在发送电子邮件时进行了 wireshark 跟踪,过滤了 exchange 服务器,以查看 sendmail 是否尝试连接它但什么也没有显示。
有人能建议我去别处看看吗?我对 sendmail 没什么经验 - 大约一年前我将其配置为传输代理,从那时起它就一直很好 - 没有任何问题。此外,Web 应用程序发送的电子邮件数量很少(即每天可能只有 3/4 封)。
我可以使用 Perl 和 Perl sendmail 模块发送电子邮件,但不能使用 PHP 和 sendmail 实用程序发送电子邮件?
有人有什么想法吗?非常感谢
答案1
已解决:好的,这个问题原来是 DNS 配置问题。在对 DNS 服务器的服务器过滤运行跟踪后,sendmail 在查询交换服务器时从 DNS 服务器收到 SERVFAIL 响应。原来有人试图在服务器上配置 VOIP 客户端,并且必须将主机名设置为 localhost.localdomain。跟踪显示 DNS 查询在 DNS 查询末尾附加了一个 localdomain 字符串 - 在将主机名重新设置后,DNS 查询正常,sendmail 可以再次发送电子邮件。非常感谢您的回复,并为没有编辑我的原始问题表示歉意,我重置了所有网络配置设置(DNS、主机名等...)
答案2
结果是什么mailq
?您可以尝试使用 强制 sendmail 队列吗sendmail -v -q
?
这应该能让你了解消息停滞的原因。这通常是网络主机名或 DNS 问题。不过,请查看这些命令的结果。
Running /var/spool/mqueue/p0LLrgqL000635 (sequence 1 of 683)
<[email protected]>... Connecting to ppro.abc.com. via esmtp...
<[email protected]>... Deferred: Connection refused by ppro.abc.com.
Running /var/spool/mqueue/p0LLrgqO000635 (sequence 2 of 683)
<[email protected]>... Deferred: Connection refused by ppro.123.com.
Running /var/spool/mqueue/p0LLrgqN000635 (sequence 3 of 683)
<[email protected]>... Deferred: Connection refused by ppro.xyz.com.