大家,早安,
我正在向Gmail帐户发送一封使用编程语言(来自一个应用程序的 .net C#)的电子邮件,当它具有 Content-Type: multipart/alternative时,电子邮件无法正确显示;和多种内容类型base64 编码。
该电子邮件已从 IMAP 和 Gmail 网站下载,并在 Thunderbird、Outlook 等中完美显示,同一电子邮件在其他提供商中也完美显示。
似乎解析有问题。
我的电子邮件是这样发送的(显示来源):
收货人:xxxx@gmail.com
...
MIME 版本:1.0
发件人:xxx hello@domain.com
至:xxxx@gmail.com
日期:2021 年 7 月 4 日 19:14:56 +0100
主题:您的一处房产已过期
内容类型:多部分/替代;边界=--boundary_0_7098d72c-b24d-4c3e-973e-5a31722af260
反馈-ID: :xxx.xxx.xx:1.xxx.smtp:xxx
X-Sid: hello@domain.com
X-返回路径:el.99f327f2d43f477812b4861c3d2d8cce.1.xxx.smtp@xxx.domain.co
消息 ID:4GHxmk474xz7rBFm@smtp2-2112.domain.co
----boundary_0_7098d72c-b24d-4c3e-973e-5a31722af260
内容类型:文本/html;字符集=utf-8
内容传输编码:base64
在这里它开始了我的 HTML base64 编码消息
......
----boundary_0_7098d72c-b24d-4c3e-973e-5a31722af260
内容类型:文本/纯文本;字符集=utf-8
内容传输编码:base64
这里开始我的纯文本 base64 消息
如果我不将消息作为 multipart/alternative 发送,它可以工作。如果在 multipart/alternative 我只添加 HTML 版本,它也可以工作。在带有 multipart/alternative 的 Gmail 中,当我发送两个版本(纯文本和 html)时,似乎网络应用程序总是加载纯文本版本。
我无法理解它说明这是一个标准有什么问题,然后它在其他提供商中正常工作。
显然,我解码了 base 64 消息,它给了我一个格式正确的 XHTML 1.0 过渡消息。