在上週末,我們的MTA(POSTFIX)突然開始在我們的消息邊界上預先添加換行符。 我們有幾個定義多部分/替代消息並定義頭部的PHP模板。 這裏是PHP郵件程序格式,它在週五工作,然後在星期一突然停止。POSTFIX/sendmail突然增加額外的換行符
$headers = "From: name <[email protected]>\r\n" .
"Reply-To: name <[email protected]>\r\n" .
"MIME-Version: 1.0\r\n" .
"Content-Type: multipart/alternative; boundary=\"09127kjhd821\"";
$txt = "\r\n\r\n--09127kjhd821\r\n" .
"Content-Type: text/plain; charset=UTF-8\r\n" .
"Content-Transfer-Encoding: quoted-printable\r\n\r\n" .
"Text Message";
$html = "\r\n\r\n--09127kjhd821\r\n".
"Content-Type: text/html; charset=UTF-8\r\n" .
"Content-Transfer-Encoding: base64\r\n\r\n" .
chunk_split(base64_encode("HTML Message"));
$body = $txt . $html . "\r\n\r\n--09127kjhd821--";
mail(
"[email protected]",
"=?UTF-8?B?" . base64_encode("Subject") . "?=",
$body,
$headers
);
比較原始郵件給破了那些我看到下面的 破碎:
Date: Fri, 3 Aug 2012 16:52:39 -0400 (EDT)
--09127kjhd821
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
原件(工作)
Date: Tue, 31 Jul 2012 12:36:45 -0400 (EDT)
--09127kjhd821
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
正如你所看到的換行符是關閉漂亮對於每個\ r和\ n來說,這個數字要翻一番,我的知識沒有任何變化會導致這種情況。
任何建議或幫助,非常感謝。
第一sendmail_path固定的問題,你有沒有使用相同的郵件客戶端相同版本的同時查看這些消息? – Sammaye 2012-08-03 21:54:19
我們有多個客戶抱怨。踢球者是我們的Gmail似乎很好地展現了他們,hotmail和我的手機也一樣。而其他Gmail客戶端則可以看到MIME格式。我正在使用我們的客戶收件箱中的一個來查看郵件,並與他們的服務器管理員進行了交談,以瞭解郵件是否可能由垃圾郵件過濾器後處理郵件引起,然後我們也開始接受其他人的投訴。 *編輯*我也發佈了電子郵件源文件正文,而不是客戶端解析的正文。 – fyrye 2012-08-03 21:59:11