关于SMTP协议邮件的编码
原创节选自 https://blog.csdn.net/bripengandre/article/details/2191048
3.3. 电子邮件标题的扩展
第一部分支持传输非 7 位 ASCII 法典。它首先指示使用以下格式的编码字使用的编码方法。
=?charset?encoding?encoded-text?text
charset 它是一个字符集规范。有效值为两个字符串 us-ascii 和 iso-8859-x ,其中 x 它是一个数字,例如 iso-8859-1 中的数字是” 1 ” 。__
encoding 它是用于指定编码方法的单个字符,支持两个值。
Q 代表 quoted-printable (可打印)编码。要发送的任何字符,如果其第一个 8 比特置 1 则被作为 3 发送的字符数: 1 人物是” = “以下两个字符对应于字符的十六进制表示形式。例如,对于二进制代码 11111111 对应的十六进制表示形式为” FF “所以相应的编码位” =FF "。为了能够传输” = ”,“ = “的编码方法与将位 8 设置为 1 的字符的编码方法相同,因为它的二进制代码是 00111101 所以对应的编码是” =3D "。可以看出,这种编码方式的成本高达: 200% 所以它只适合只有少量非 7 位 ASCII 代码的文本。
B 代表 base64 法典。它的编码方法是将二进制代码分成一个 24bit 长单位,然后添加这个 24 bit 该单元分为 4 个 6 bit 群。每个组都遵循图表 2 将显示的方法转换为 ASCII 码。
图 2 base64 映射表
可以看出,这种映射方法如下: 0-25 按顺序映射到 A-Z , 26-51 按顺序映射到 a-z,52-61 按顺序映射到数字 0-9 ,然后 62 映射成 + , 63 映射成 / 。
对于二进制代码 01001001 00110001 01111001 首先,将其分为 4 个 6 bit 组,即 010010 0100011 000101 111001 。根据图表继续 2 所示的映射表可以得到 base64 编码为: STF5 。可以看出,这种编码方式的成本是 25% ,相对 quoted-printable 在编码方面,它更适合传输大量非 7 位 ASCII 代码的二进制文件。
3.4. 正文的扩展
正文的扩展主要是为了使其不仅能够传播 NVT ASCII 字符,并且可以传输任何字符,对应于文档 RFC1511 (即 MIME )。
MIME 全称为“ Multiple Internet Mail Extensions ” , 更准确的中文名称是“多用途互联网邮件扩展”。通过添加一些电子邮件标题字段、电子邮件内容格式和传输编码,它已成为广泛使用的多媒体传输电子邮件规范。
请参考另一篇文章进行更详细的解释《 MIME 协议分析“和 RFC1511 。
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除