为什么Outlook不使用text / plain部分?

时间:2013-10-02 11:03:08

标签: outlook plaintext

首先,你好,

使用SwiftMailer,我正在发送HTML + PLAIN电子邮件。

在outlook上,当以纯文本形式显示此电子邮件时,这不是我显示的纯文本部分,而是HTML的自动解析版本。

有人知道在显示纯文本时如何强制Outlook使用邮件的text / plain部分吗?

我的代码执行以下操作:

$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包含非常干净的文字(感谢 javon ):

vardump($plain_body);

"Hello Ninj!

You requested a confirmation by email..."

但是在Outlook中查看的纯文本版本中,我会逐个查看HTML版本图片的所有alt属性,然后是一些格式错误的文本:

  

公司名称

     

边界

     

某人先生

     

你好Ninj!

     

您要求通过电子邮件确认...

     

页脚

提前感谢所有能够提供帮助的人:)

1 个答案:

答案 0 :(得分:4)

不能那样做。 Outlook保持所有3种体味(HTML,RTF,纯文本)同步。这是在商店提供商级别完成的。

当它收到MIME消息时,它使用HTML正文(如果可用)。保存邮件时,商店提供程序使用HTML正文生成纯文本正文(PR_BODY属性)。