我运行 Ubuntu 10.04 并安装了带有“卫星”Postfix(用作我的 ISP 的 smtp 中继)的 LAMP 堆栈。
在 php.ini 中,我将 sendmail 传递保留为默认值,并使用-t -i
参数:
;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)
我们怎样才能解决这个问题?
笔记:电子邮件在其他安装上运行正常:Gentoo 带有 qmail 或 Windows 带有在 php.ini 中设置为我的 isp 的 smtp。
以下是完整标题:
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]
答案1
Postfix 将“换行符”(\n) 转换为“回车换行符”(\r\n)。请尝试删除 \r 并仅使用 \n。
答案2
您的陈述和标题不匹配。可能只是复制粘贴错误,但对于诊断来说这是一个糟糕的起点。
然后,标题中会出现两条 Return-Path 行,正文中会出现一条。这很奇怪,表明存在更大的问题。
总体问题是,您试图找出经过四台 (!) 电子邮件服务器的邮件标头存在的问题。然后您将其中一台归咎为罪魁祸首。但这可能是其中任何一台。或者最明显的是,这五台邮件服务器中没有一台是罪魁祸首,因为邮件服务器通常不会修改标头或正文,除非 RFC 5321 要求或要求它们修改。因此,如果您想分析问题,您必须查看邮件如何到达第一台服务器,而不是到达后续服务器。