如果我想要包含电子邮件的文本版本和附加文件,请使用哪个MIME

时间:2015-09-23 08:03:50

标签: html email smtp mime-types content-type

据我所知,电子邮件只能包含一个主@BackendId标题,是否正确?无论您是要发送带有附加文件的邮件,还是带有html内容和纯文本版本的邮件,都应使用 Multipart Content-Type 。在每个部分中,还可以明确指定该特定部分的内容类型。

rfc1341我收集到有两个主要子类型的多部分内容类型:

  • Multipart / mixed(主要)子类型
  • Multipart / alternative子类型

如果我想要同时包含html和纯文本版本,我会使用 Multipart / alternative 作为最外层Content-Type标题,因为它的语义含义是(来自rfc1341 }):

  

特别是,每个部分都是相同信息的“替代”版本。用户代理应该认识到各个部分的内容是可以互换的。用户代理应该根据用户的环境和偏好选择“最佳”类型,或者为用户提供可用的替代方案。通常,选择最佳类型意味着仅显示可以显示的最后部分。例如,这可以用于以简洁的文本格式发送邮件,以便可以在任何地方轻松显示

另一方面,如果我需要附加文件,我应该使用 Multipart / mixed  如rfc1341中所述:

  

混合用于身体部位独立且打算连续显示时使用

当您想要附加文件时显然就是这种情况。

但是如何使用文本版本发送包含文件 AND 的电子邮件,即当我希望我的多部分字母的某些部分连续显示(主要内容和附件),而其他部分可互换地显示(html和纯文本)?那么我应该使用哪个最外面的Content-Type标题?

1 个答案:

答案 0 :(得分:0)

您在multipart / mixed中封装了multipart / alternative。

换句话说,如果您想要一个文本和HTML正文并附加一个zip文件,那么MIME树结构将如下所示:

multipart/mixed
  multipart/alternative
    text/plain
    text/html
  application/zip