3

首先,你好,

使用 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包含一个非常干净的文本(感谢javon):

vardump($plain_body);

"Hello Ninj!

You requested a confirmation by email..."

但是在 Outlook 中查看的纯文本版本中,我看到alt的是 HTML 版本图片的所有属性,一行一行,然后是一些轻微格式化的文本:

公司名称

边界

某人先生

你好忍者!

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

页脚

提前感谢大家能够提供帮助:)

4

1 回答 1

5

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

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

于 2013-10-02T17:39:18.020 回答