关于SMTP协议邮件的编码

原创
小哥 2年前 (2023-05-24) 阅读数 36 #大杂烩

节选自 https://blog.csdn.net/bripengandre/article/details/2191048

3.3. 电子邮件标题的扩展

第一部分支持传输非 7ASCII 法典。它首先指示使用以下格式的编码字使用的编码方法。

=?charset?encoding?encoded-text?text

charset 它是一个字符集规范。有效值为两个字符串 us-asciiiso-8859-x ,其中 x 它是一个数字,例如 iso-8859-1 中的数字是” 1 。__

encoding 它是用于指定编码方法的单个字符,支持两个值。

Q 代表 quoted-printable (可打印)编码。要发送的任何字符,如果其第一个 8 比特置 1 则被作为 3 发送的字符数: 1 人物是” = “以下两个字符对应于字符的十六进制表示形式。例如,对于二进制代码 11111111 对应的十六进制表示形式为” FF “所以相应的编码位” =FF "。为了能够传输” = ”,“ = “的编码方法与将位 8 设置为 1 的字符的编码方法相同,因为它的二进制代码是 00111101 所以对应的编码是” =3D "。可以看出,这种编码方式的成本高达: 200% 所以它只适合只有少量非 7ASCII 代码的文本。

B 代表 base64 法典。它的编码方法是将二进制代码分成一个 24bit 长单位,然后添加这个 24 bit 该单元分为 46 bit 群。每个组都遵循图表 2 将显示的方法转换为 ASCII 码。

2 base64 映射表

可以看出,这种映射方法如下: 0-25 按顺序映射到 A-Z26-51 按顺序映射到 a-z,52-61 按顺序映射到数字 0-9 ,然后 62 映射成 +63 映射成 /

对于二进制代码 01001001 00110001 01111001 首先,将其分为 46 bit 组,即 010010 0100011 000101 111001 。根据图表继续 2 所示的映射表可以得到 base64 编码为: STF5 。可以看出,这种编码方式的成本是 25% ,相对 quoted-printable 在编码方面,它更适合传输大量非 7ASCII 代码的二进制文件。

3.4. 正文的扩展

正文的扩展主要是为了使其不仅能够传播 NVT ASCII 字符,并且可以传输任何字符,对应于文档 RFC1511 (即 MIME )。

MIME 全称为“ Multiple Internet Mail Extensions, 更准确的中文名称是“多用途互联网邮件扩展”。通过添加一些电子邮件标题字段、电子邮件内容格式和传输编码,它已成为广泛使用的多媒体传输电子邮件规范。

请参考另一篇文章进行更详细的解释《 MIME 协议分析“和 RFC1511

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门