Ubuntu

Php mail() 標頭無法與 Postfix 一起正常工作

  • October 27, 2011

我執行 Ubuntu 10.04 並安裝了一個帶有“衛星”後綴的 LAMP 堆棧(用作我的 ISP 的 smtp 的中繼)。

在 php.ini 中,我將 sendmail 傳遞保持為預設值,因此帶有-t -i參數:

;sendmail_path =

我發送這樣的電子郵件:

$headers  = 'From: info@mydomain.com' . "\r\n";
$headers .= 'Reply-To: info@mydomain.com' . "\r\n";
$headers .= 'Return-Path: info@mydomain.com';

mail('recipient@mydomain.com', 'Email title', 'Text of the body.', $headers);

收到的電子郵件在正文中有這個(它應該在標題中):

Reply-To: info@mydomain.com 
Message-Id: <20111027210218.6F32440DE7@mydomain.com>
Date: Thu, 27 Oct 2011 23:02:18 +0200 (CEST)

我們怎樣才能解決這個問題?

**注意:**電子郵件在其他安裝上正常工作:Gentoo 與 qmail 或 Windows 與 smtp 設置為我在 php.ini 中的 isp。

這是完整的標題:

Return-Path: <www-data@mydomain.com>
Delivered-To: info@mydomain.com
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: <www-data@mydomain.com>
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 <www-data@mydomain.com>)
   (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: info@mydomain.com
Subject: Email Title
X-PHP-Originating-Script: 1000:helpdesk.php
From: toto@gmail.com

Postfix 將“換行”(\n) 翻譯成“輸入換行”(\r\n)。嘗試刪除 \r 並僅使用 \n。

您的陳述和標題不匹配。可能只是一個複制和粘貼錯誤,但卻是一個糟糕的診斷起點。

然後,標題中有兩條 Return-Path 行,正文中有一條。這很奇怪,表明存在更大的問題。

總體問題是您正試圖確定通過四個(!)電子郵件伺服器的郵件標題的問題。然後你將其中一個歸咎於罪魁禍首。但它可以是其中任何一個。或者最明顯的是,這五個郵件伺服器中的任何一個都不會修改標題或正文,除非它們被 RFC 5321 告知或要求。因此,如果您想分析問題,您必須首先查看郵件是如何到達的伺服器,而不是即將到來的伺服器。

引用自:https://serverfault.com/questions/325506