3
首先,你好,爲什麼Outlook不使用text/plain部分?
隨着SwiftMailer,我發送HTML + PLAIN電子郵件。
在Outlook上,當以純文本形式顯示此電子郵件時,這不是我的純文本部分,而是HTML的自動分析版本。
有沒有人知道如何強制Outlook顯示純文本時使用文本/純文本部分的消息?
我的代碼執行以下操作:
$plain_body = convert_html_to_text($body);
$message->setBody($body, 'text/html')
->addPart($plain_body, 'text/plain');
$body
有一定的格式和圖像:
vardump($body);
<html>
<head>...</head>
<body>
<img src="logo.png" alt="Company name" /><br />
<img src="border.png" alt="border" /><br />
<img src="face.png" alt="Mr Somebody" /><br />
<p>Hello Ninj!
You requested a confirmation by email...</p>
<img src="footer.png" alt="footer" />
</body></html>
$plain_body
包含一個非常乾淨的文本(感謝雅翁):
vardump($plain_body);
"Hello Ninj!
You requested a confirmation by email..."
但在Outlook中看到的純文本版本,我看到不是所有的HTML版本圖片的alt
屬性,一個線,然後一些輕微格式的文本:
公司名稱
邊境
Mr Somebody
你好忍者!
您要求通過電子郵件確認...
頁腳
感謝您提前爲大家能夠幫助:)
感謝您的回答,請允許我嘗試進一步:如果Outlook不關心它,爲什麼還要包含文本的純文本版本?這不是爲了這個目的而創建的另一個主體:當HTML沒有呈現時,顯示出來而不是HTML嗎? – Ninj
如果您要發送到Outlook,除非它是唯一的身體部位,否則plaint文本將不會執行任何操作。請記住,Outlook不會以MIME格式存儲郵件。一旦收到來自POP3/IMAP4 /等的消息。服務器並存儲在一個Outlook存儲中,Outlook沒有存儲郵件的來源和MIME格式。 –
@Ninj:不僅有Outlook,其他客戶端將使用'text/plain'部分。 SpamAssassin不喜歡只有HTML的郵件。 – Tobias