2016-04-29 54 views
0

我有一封電子郵件,我試圖發送(整個電子郵件在標題中)。其實,電子郵件正在發送。但是當它到達目的地時,內容已被刪除。如果我發送完全相同的電子郵件,並使用來自不同服務器的相同代碼構建,則一切正常。從郵件中刪除的內容()

當我把它打印出來使用nl2br(htmlspecialchars($headers, ENT_QUOTES)),這就是我得到:

From: [email protected] 
Reply-to: [email protected] 
MIME-Version: 1.0 
Content-Type: multipart/mixed; boundary="cccf6094979eaede770a2a2e88fc83e9" 
Content-Transfer-Encoding: 7bit 
This is a MIME encoded message. 
--cccf6094979eaede770a2a2e88fc83e9 
Content-Type: text/plain; charset="iso-8859-1" 
Content-Transfer-Encoding: 8bit 
You are not being awesome.... 
--cccf6094979eaede770a2a2e88fc83e9-- 

當電子郵件被髮送,身體是空的,當我看着它在Gmail的「秀原來,」它看起來一樣,但內容不在那裏。

我正在使用postfix和OpenDKIM,但我已禁用它們中的每一個,甚至切換回sendmail,並且這些電子郵件都沒有機構。我正在爲這件事撕碎我的頭髮。

+0

你檢查你的郵件日誌爲postfix或sendmail?那裏有什麼有趣的東西? – Jason

+0

您缺少郵件正文中的空白行。請參閱[示例](https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html):「每個部分以封裝邊界開始,然後包含由標題區域組成的正文部分,**空格線**和身體區域。「 –

+0

@Jason我找不到任何相關的東西;只需連接Google的郵件服務器即可。 – Kittsil

回答

1

您缺少郵件正文中的空白行。

報價from the RFC

每個部分用包封邊界啓動,然後包含一個主體部分包括標題區域,一個空行和主體區的。

(重點煤礦)

添加適當的空行和它的作品:

頁眉:

From: [email protected] 
Reply-to: [email protected] 
MIME-Version: 1.0 
Content-Type: multipart/mixed; boundary="cccf6094979eaede770a2a2e88fc83e9" 
Content-Transfer-Encoding: 7bit 

身體:

This is a MIME encoded message. 

--cccf6094979eaede770a2a2e88fc83e9 
Content-Type: text/plain; charset="iso-8859-1" 
Content-Transfer-Encoding: 8bit 

You are not being awesome.... 
--cccf6094979eaede770a2a2e88fc83e9-- 
+0

就是這樣。這是一個縮小的例子;我們的圖書館(一年前)適應於基於此回答處理附件:http://stackoverflow.com/a/12313090。我已經改變它打破標題和正文,並且它正常工作。謝謝! – Kittsil