我正在查看来自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
Run Code Online (Sandbox Code Playgroud)
(如看到这里)
消息代码的其余部分对我来说对于帖子部分是有意义的.
Dan*_*ant 15
您在边界分隔符中看到的数字并不一定意味着什么(尽管RFC并不排除实现者试图包含某些含义).
它们必须是唯一的,并且不包含在它们封装的部分中.
来自RFC 2046:
5.1.多部分媒体类型
在多部分实体的情况下,其中一个或多个不同的数据集合在一个主体中,"多部分"媒体类型字段必须出现在实体的头部中.然后,身体必须包含一个或多个身体部位,每个身体部位前面都有一个边界分界线 ......
如前所述,每个正文部分前面都有一个包含边界定界符的边界定界符. 边界定界符不得出现在任何封装的部分内,单独一行或作为任何行的前缀 ......
...
5.1.1.通用语法
多部分实体的Content-Type字段需要一个参数"boundary".然后将边界定界符行定义为一个完全由两个连字符(" - ",十进制值45)组成的行,后跟来自Content-Type头字段的边界参数值,可选的线性空格和终止的CRLF.
...
注意: 由于边界分隔符不得出现在要封装的正文部分中,因此用户代理必须谨慎选择唯一的边界参数值. 边界参数值[可以]是设计用于产生边界定界符的算法的结果,该边界定界符具有在待封装的数据中已经存在的非常低的概率,而不必预扫描数据. ...最简单的边界定界线可能是"---",其边界定界线为"-----".