3

我正在查看来自 Thunderbird 的多部分消息的来源(希望从 C++/Javascript 编写我自己的多部分消息)

我想知道以下是什么意思(电子邮件的纯文本部分和 html 部分之间的部分)以及如何为我自己的程序计算它以生成多部分电子邮件:

This is a multi-part message in MIME format.

------=_NextPart_32252.1057009685.31.001
Content-Type: multipart/alternative;
    boundary="----=_NextPart_32252.1057009685.31.002"
Content-Description: Message in alternative text and HTML forms


------=_NextPart_32252.1057009685.31.002

(如此处所示

对于帖子部分,其余的消息代码对我来说很有意义。

4

2 回答 2

15

您在边界分隔符内看到的数字不一定意味着任何东西(尽管RFC并不排除实现者试图包含某些含义)。

它们必须是唯一的,并且不包含在它们封装的部分中。

来自RFC 2046

5.1。多部分媒体类型

在多部分实体的情况下,其中一个或多个不同的数据集组合在一个主体中,“多部分”媒体类型字段必须出现在实体的标题中。正文必须包含一个或多个正文部分,每个部分前面都有一个边界分隔线...

如前所述,每个正文部分前面都有一个包含边界分隔符的边界分隔符行。 边界分隔符不得出现在任何封装部分内,单独出现在一行上或作为任何行的前缀......

...

5.1.1。通用语法

多部分实体的 Content-Type 字段需要一个参数,“boundary”。然后,边界分隔符行被定义为完全由两个连字符(“-”,十进制值 45)组成的行,后跟来自 Content-Type 标头字段的边界参数值、可选的线性空格和终止 CRLF。

...

注意: 因为边界分隔符不能出现在被封装的主体部分中,所以用户代理必须小心选择唯一的边界参数值。 边界参数值[可能]是一种算法的结果,该算法旨在生成边界定界符,该边界定界符在要封装的数据中已经存在的概率非常低,而无需预先扫描数据。 ... 可能的最简单的边界分隔线类似于“---”,闭合边界分隔线为“-----”。

于 2009-04-27T19:42:38.713 回答
3

他们没有任何意义。它们只是一个随机字符串,不会出现在电子邮件正文中。它们仅用于标记嵌入消息的开始和停止位置。

于 2009-04-27T19:39:04.337 回答