2012-02-12 38 views
2

Im通過PHP中內置的簡單郵件函數發送收件人的訂單確認,並且工作正常。這是一個「好」的電子郵件設置表和幾個款式與細節,它通過PHP發送的我的電子郵件只顯示幾個收件人的標籤(發送幾百個)

但是幾個收件人只看到html標籤,當然無法弄懂..

如果我得到一個,它完全顯示在雷鳥,hotmail,Gmail ..

該html是完美的,不缺少任何結束標籤,我也發送一些標題,因爲我已閱讀我應該。這是我的郵件發送功能:

$body = "some html tags, set up in a table" ; 
$sendto = "The recipients email here" ; 
$subject = "subject here" ; 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n"; 
$headers .= "To: theemailhere <theemailhere>\r\n"; 
$headers .= 'From: <thefromemailhere>' . "\r\n"; 
mail($sendto, $subject, $body, $headers); 

這是我的錯誤,還是收件人選擇不接收html電子郵件?我的意思是,這仍然有可能在2012年,人們是否禁用?

如果是這樣,那麼做什麼可能是一個很好的解決方法。我的意思是我想避免使用純文本。

+3

有人會禁用它。我禁用它。如果要發送HTML,建議發送包含純文本部分和html部分的multipart/mime消息。 – 2012-02-12 15:12:48

+0

[outlook中的PHP HTML郵件呈現標記]的可能重複(http://stackoverflow.com/questions/2043490/php-html-mail-rendering-tags-in-outlook) – 2012-02-12 15:34:01

回答

0

是的。有真的電子郵件客戶端不允許HTML電子郵件。我猜老的Outlook也是其中之一,但不確定。

所以,不管怎樣,這不是你的錯,它是用戶的。請參閱源1和源2.

而且您永遠無法確定用戶的郵件程序接受了什麼。只有明文是肯定接受的。引用來源2:

「你能做的最好的預期是如何各主要客戶將 打破你的設計,然後嘗試去控制它如何打破,所以它的 仍然可讀大多數收件人的「。

它只能用多部分消息解決,但是有些人會得到明文。有關該問題的一些詳細信息,請參閱源3,解決方案的源4請參見。

一些這方面的文件:Source 1Source 2Source 3Source 4

+0

謝謝,這個清理了一下..你會推薦多部分信息嗎? 我可以看到,如果我這樣做,那麼一些可以閱讀html的人將意外地獲取純文本版本。 – 2012-02-12 17:20:25

+0

是的,沒有。否,如果您認爲強制這些少數人在自己的個人設置中更改電子郵件類型或閱讀標籤是很好的 - 所以如果此註冊有登錄頁面。如果你認爲不應該要求用戶設置,那麼使用multipart,它比標籤更好。 – axiomer 2012-02-12 17:40:42

+0

當它...現在看來,一些剛剛收到標籤的人實際上可以閱讀其他人發送的html消息。 任何建議,爲什麼這可能是? :( – 2012-02-13 11:19:32

0

我一直在使用Zend_Mail最近(採埃孚),其設置純文本郵件的選項,然後將覆蓋一個HTML郵件它在哪裏可用HTML。我不確定這是如何在消息(頭/等)中實現的,但這可能是您的問題的答案。

相關問題