向EMail MIME添加HTML前缀会导致某些客户端显示空主体

时间:2017-11-15 16:20:56

标签: html email outlook mime multipart

我正在尝试向电子邮件添加HTML部分 - 可以是任何类型的MIME(可能是混合替代,我们从GMail获取它) 。
以下是我们目前的工作方式:

email_copy = deepcopy(original_email)
if 'Content-Type' in original_email:
    original_email.replace_header('Content-Type', 'multipart/mixed')
else:
    original_email.add_header('Content-Type', 'multipart/mixed')
warning_part = [MIMEText(warning_html, 'html', 'UTF-8')]
original_email.set_payload(warning_part)
original_email.attach(email_copy)

以上代码段适用于GMail网络客户端,GMail Android应用程序,Mac上的Outlook等。 但是,在某些特定的EMail客户端上,我们的电子邮件显示方式不同:

  • Outlook App for Android 上,正文丢失,没有附件;
  • 在Windows 8.1 上的 Outlook 2016应用程序中,正文丢失,但它显示为2个附件(文本和HTML)。

现在我遇到了这个帖子:
HTML-Email with inline attachments and non-inline attachments(@Renat Gilmanov)
这一个:
Mail multipart/alternative vs multipart/mixed(@Iain)

第一个涉及控制图像是以内联方式显示还是作为附件显示。我试着将它应用到我的案例中,但我仍然得到相同的行为。 第二个建议一个特定的结构,我也无法使它适用于我的情况。

为了在原始邮件中添加HTML前缀,我应该使用哪种正确的结构 - 所以它会在所有主要电子邮件客户端上统一显示? 附:我目前正试图避免编辑原始的html部分,但这是我的最后一招。

非常感谢任何帮助!

0 个答案:

没有答案