奇怪的 Postfix 致命错误

奇怪的 Postfix 致命错误

我经营三家 Magento 网上商店。所有订单电子邮件都运行正常,除了 7 封电子邮件甚至没有从网络服务器发送。在调查该问题后,我发现了以下日志:

Magento 日志:

2013-08-08T11:44:59+00:00 ERR (3): 
exception 'Zend_Mail_Transport_Exception' with message 'Unable to send mail. ' in /var/www/website.com/lib/Zend/Mail/Transport/Sendmail.php:137

Postifx 日志:

Aug  8 12:44:59 bv-webserver postfix/sendmail[18647]: fatal: [email protected](33): No recipient addresses found in message header
Aug  8 12:44:59 bv-webserver postfix/postdrop[18648]: fatal: uid=33: malformed input

这很奇怪,因为数百封电子邮件都发送正常,只有这 7 封出现此异常。在某些情况下,客户只是从商店再次购买,然后按预期收到了电子邮件。

我以为是资源问题。但我运行了 newrelic 代理,服务器在高峰时段的负载最多为 20%(内存和处理器)。

编辑:忘了提一下,我使用 php-fpm 运行 nginx。

答案1

postdrop[18648]: 致命: uid=33: 格式错误的输入

这说明了一切,您有 7 封电子邮件已损坏。它们可能有换行符/回车符,导致标题结束得太早(可能在收件人:标题之前)。

该换行符可能位于收件人地址的开头(因此 to: 为空)或任何先前的用户输入字符串中。该换行符在许多情况下也可能不可见(剥离、没有滚动条的表单、输出时被空格替换等),因此请仔细搜索。

尝试检查 /var/spool/postfix/maildrop/ 文件夹中是否有坏邮件,它应该是空的,但请尝试一下...

您可能需要将 postdrop 放入调试中,-v在 master.cf 中的 postdrop 行末尾添加

检查postdrop 手册页了解更多信息

答案2

显然,这七份订单缺少收件人电子邮件地址。检查是否可以在不提供电子邮件的情况下在您的网上商店下订单。

相关内容