如何让微软邮件客户端显示MIME多部分邮件中的多个HTML/纯文本内容?
多部分邮件添加签名后在Outlook.com中被识别为附件的问题求助
问题背景
我需要给结构未知的原始邮件添加签名,做法是将原始邮件包裹在multipart/mixed容器中,再追加一个包含纯文本和HTML版本签名的multipart/alternative部分。
当原始邮件本身是multipart/alternative类型时,最终邮件结构如下:
multipart/mixedmultipart/alternative[原始邮件]text/plaintext/html
multipart/alternative[附加签名]text/plain[纯文本签名]text/html[HTML签名]
这个结构在Thunderbird、Gmail/Yahoo/AOL/gmx等网页邮箱中都能正常显示原始邮件和附加签名,但Outlook.com会把签名的两个替代部分当作可下载附件处理,用户只能看到下载提示框,无法直接展示内容。
之前针对微软客户端的解决方案是只追加单独的text/html签名部分,结构如下:
multipart/mixedmultipart/alternative[原始邮件]text/plaintext/html
text/html[仅HTML签名]
这个方案曾生效多年,但现在已经失效,签名再次被识别为附件。
已尝试的无效方案
我试过多种方法,但Outlook.com始终将第二个HTML/纯文本部分视为附件,尝试过的方法包括:
- 将第二个
multipart/alternative替换为包裹签名multipart/alternative的multipart/mixed - 给签名部分强制设置
Content-Disposition: inline,但微软客户端似乎忽略该设置 - 将外层
multipart/mixed替换为type=multipart/alternative的multipart-related
需求
寻求无需解析重写原始邮件内部内容的前提下,让Outlook.com能够正常显示附加签名的解决办法。
内容的提问来源于stack exchange,提问作者EML
相关产品推荐
相关产品推荐

