奇怪的Postfix致命错误

我运行了三个Magento网上商店。 所有的订单电子邮件工作正常,除了7个电子邮件,甚至没有从networking服务器发送。 在调查问题后,我发现了以下日志:

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。

postdrop [18648]:致命的:uid = 33:格式不正确的input

这说明一切,你有7个电子邮件是坏的。 他们可能有一个换行符/载体返回,使得头太快(可能在To:头之前)。

该换行符可能位于收件人地址的开始位置(所以to:为空),或者位于任何以前的用户inputstring中。 换行也许在许多情况下是不可见的(剥离,没有scrool酒吧的forms,输出空间取代等),所以仔细search。

尝试检查/ var / spool / postfix / maildrop /文件夹中的不良电子邮件,它应该是空的,但试试看…

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

检查postdrop手册页获取更多信息

显然那七个订单缺less一个收件人的电子邮件地址。 检查是否可以在您的网上商店下订单而不提供电子邮件。