2015-07-19 78 views
1

我正在開發一個使用PHP的郵件系統。我非常接近完成,因爲它除Outlook之外都運行良好(我目前正在測試Outlook 2010,在Windows 7上)。PHP郵件多部分/混合中斷Outlook 2010

電子郵件是multipart/mixed;它包含一組multipart/alternative HTML和純文本替代以及可選的附件。這一切都得到正確發送,如果我在Gmail中檢查原始標題,它看起來應該看起來。但是,如果我在Outlook中檢查原始標題,它會在multipart/mixed聲明後切斷任何內容。我在這裏包含了標題。我簡化了他們;剝離實際的純文本,html,電子郵件地址,並簡化邊界。由Gmail顯示我的頭,看起來有點像這樣:

(... information about receiving by the server ...) 
To: "Hidden recipients" <[email protected]> 
Subject: Een BCC 
From: "My Name"<[email protected]> 
Reply-To: [email protected] 
Date: Sun, 19 Jul 2015 14:16:31 +0000 
MIME-Version: 1.0 
Content-Type: multipart/mixed; boundary="PHP-mixed" 

This is a message with multiple parts in MIME format. 
--PHP-mixed 
Content-Type: multipart/alternative; boundary="PHP-alt" 
--PHP-alt 
Content-type:text/plain;charset=utf-8 
Content-Transfer-Encoding: quoted-printable 
... here's the plain text alternative 
--PHP-alt 
Content-type: text/html;charset=utf-8 
Content-Transfer-Encoding: quoted-printable 
... here's the html-formatted text 
--PHP-alt-- 
--PHP-mixed-- 

的Outlook顯示我的頭,看起來有點像這樣:

(... information about receiving by the server ...) 
To: "Hidden recipients" <[email protected]> 
Subject: Een BCC 
From: "My Name"<[email protected]> 
Reply-To: [email protected] 
Date: Sun, 19 Jul 2015 14:16:31 +0000 
MIME-Version: 1.0 
Content-Type: multipart/mixed; boundary="PHP-mixed" 

我的問題是,怎麼會出現這種情況,如何能我解決了這個問題?爲什麼Gmail運行良好,而Outlook卻沒有?

+1

這不是一個現實的例子。但看起來你正在手動組裝MIME部分。考慮一下事實證明,像SwiftMailer/PHPMailer,而不是handicrafting很難解決的事情。 – mario

+0

謝謝。我目前正在嘗試PHPMailer。看起來很容易實現,即使我在共享服務器主機上。現在我已經發送了一個簡單的多部分/替代電子郵件,我發現在outlook中「查看完整的標題」實際上是故意切斷標題中的郵件正文!至少它效果更好。當我完成它時,我會填寫自己的問題的答案! :-) – Jeroen

回答

0

僅供參考,以人絆倒在與我相似的問題,我發佈這個答案。和許多其他SO問題相關的是通過PHP狀態發送郵件,建議使用其他庫。存在許多圖書館,由您決定在您要實施的這些圖書館之間進行選擇。

馬里奧在這個問題上的意見指出,這是非常值得推薦使用庫發送更先進的電子郵件!對我來說,編寫正確的頭文件是一件非常痛苦的事情,而且這些庫很容易使用,而且最終可能會比建立自己的「郵件庫」的結果更好。

  • SwiftMailer
  • PHPMailer(我選擇了這一個我的應用程序)
  • 可能還有一些其他..只是谷歌查詢您所需要的。

我經歷PHPMailer的那樣容易實現;只是將代碼複製到我的目錄工作!我不確定SwiftMailer,但我想它的工作原理類似。

底線:不要固執,用圖書館! :-)

1

Outlook中顯示了它應該顯示:在MIME頭。它不顯示整個MIME消息。郵件本身是否由Outlook正確顯示?

+0

感謝您的澄清。不,沒有顯示信息;它在屏幕上顯示爲空白。我沒有使用庫發送電子郵件,但目前我正在嘗試PHPMailer,它似乎工作(但我還沒有在我製作的系統中實現它)。 – Jeroen

相關問題