PHP邮件()标题无法正常工作与Postfix

我运行Ubuntu 10.04并安装了一个“卫星”Postfix的LAMP堆栈(用作我的ISP的SMTP中继)。

在php.ini中,我使用-t -i参数将sendmail传递保留为默认值:

 ;sendmail_path = 

我发送这样的电子邮件

 $headers = 'From: [email protected]' . "\r\n"; $headers .= 'Reply-To: [email protected]' . "\r\n"; $headers .= 'Return-Path: [email protected]'; mail('[email protected]', 'Email title', 'Text of the body.', $headers); 

收到的电子邮件中有这个(它应该在标题中):

 Reply-To: [email protected] Message-Id: <[email protected]> Date: Thu, 27 Oct 2011 23:02:18 +0200 (CEST) 

我们如何解决这个问题?

注意:电子邮件在其他安装上可以正常工作:带有qmail的Gentoo或带有smtp的Windows在php.ini中设置为我的isp。

这是完整的标题:

 Return-Path: <[email protected]> Delivered-To: [email protected] Received: (qmail 28922 invoked from network); 27 Oct 2011 23:00:55 +0200 Received: from zhhdzmsp-mail12.myisp.com (1.2.3.5) by www.mydomain.com with SMTP; 27 Oct 2011 23:00:55 +0200 Return-Path: <[email protected]> X-FXIT-IP: IPv4[1.2.3.4] Epoch[1319888334] Received: from [1.2.3.4] ([1.2.3.4:17957] helo=dev.mydomain.com) by zhhdzmsp-mail12.myisp.com (envelope-from <[email protected]>) (ecelerity 2.2.3.46 r()) with ESMTP id 6E/C0-28209-6D6C9AE4; Thu, 27 Oct 2011 21:02:14 +0000 Received: by dev.mydomain.com (Postfix, from userid 33) id 6F32440DE7; Thu, 27 Oct 2011 23:02:18 +0200 (CEST) To: [email protected] Subject: Email Title X-PHP-Originating-Script: 1000:helpdesk.php From: [email protected] 

Postfix将“换行”(\ n)转换为“回车换行”(\ r \ n)。 尝试删除\ r并仅使用\ n。

你的陈述和标题不匹配。 可能只是一个复制和粘贴错误,但是是一个不好的诊断起点。

然后你有两个返回path在头部和一个在身体。 这很奇怪,也是一个更大的问题。

总体问题是,您试图通过经过四个(!)电子邮件服务器的邮件头来确定问题。 然后你把其中一个怪罪于罪魁祸首。 但它可以是其中的任何一个。 或者最显而易见,五个邮件服务器通常都不会修改标题或主体,除非被告知或被RFC 5321要求。所以如果你想分析问题,你必须看看邮件是如何到达第一个服务器,而不是即将到来的服务器。