2009-04-27 123 views
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 

(如图here

消息的其余部分代码对于我来说是适合后期的。

回答

15

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

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

RFC 2046

5.1。多部分媒体类型

在多实体,其中 一个或多个不同的数据集 被组合在一个单一的主体的情况下, 一个“多部分”媒体类型字段必须 出现在实体的报头。然后将 体必须包含一个或多个 体部分,每个由一个 边界行前面...

如前所述,每个本体部分由包含该边界定界符的边界 定界符线之前。 边界 定界符不得出现内部的任何封装部件,在 线本身或任何线的前缀......

...

5.1.1。公共语法

multipart实体的内容类型字段需要一个参数 “boundary”。然后边界 定界符线被定义为 线完全由两个 连字符(“ - ”,十进制值 45),然后从内容类型 头域的边界 参数值,任选的直链 空白和终止CRLF。

...

注:因为边界定界符不能在身体各部位 出现被封装,用户代理必须小心谨慎选择 独特的边界参数值。 边界参数值 [可以是]设计为 的算法的结果产生极限概率已经存在于要封装的数据中的极低概率分界符,而无需预先扫描 数据。 ... 可能的最简单的边界分隔线类似于“---”, ,并且结束边界分隔线为“-----”。

+1

++用于查找和引用RFC。 :-) – Shog9 2009-04-27 19:43:49

3

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