转载: 关于邮件编码若干总结

编码的种类

RFC 821 ( SMTP )将邮件限制为 7 位 US-ASCII 数据算上 crlf 不超过 1000 个字符。

当前定义了三种编码方式 : identity (“ 等同 ” 也就是不编码 ) 、 qp 、 base64 。三种范围 : 二进制、 8bit 、 7bit 。

当 Content-Transfer-Encoding 的值为 “7bit”, “8bit”, “binary” 之一时,意味着不编码。仅仅提供了邮件体数据的范围。

1 、为了大的二进制数据紧凑高效的编码

2 、为了可读数据绝大多数仍然可读的编码

产生了一个或多或少可读的编码( quoted-printable )和“紧凑”或“统一”编码( base64 )。

Content-Transfer-Encoding 字段限制的值为: “7bit” / “8bit” / “binary” /”quoted-printable” / “base64” /ietf-token / x-token

其中 x-token 是自定义编码方式, ietf-token 是

An encoding type of 7BIT requires that the body is already in a 7bit mail-ready representation. This is the default value — that is, “Content-Transfer-Encoding: 7BIT” is assumed if the Content-Transfer-Encoding header field is not present.

7bit 编码需要邮件体已经是 7bit 表示,也就是说解码时只需要检测编码是不是符合 7bit 规则,如果符合不会解码。 7bit 是默认编码类型。

编码的定义

1 、 7bit

参考 rfc2045

7bit 编码是指在 CRLF 行之间用 998 个八位字节或更少的字节表示的数据。 其中不允许十进制值大于 127 的八位字节,也不允许 NUL (十进制值为 的八位字节)。

CR (十进制值 13 )和 LF (十进制值 10 )仅仅作为行之间分离符号出现( crlf 之后的数据按新行计数)。

8bit 编码是指在 CRLF 行之间用 998 个八位字节或更少的字节表示的数据。 其中允许十进制值大于 127 的八位字节,不允许 NUL (十进制值为 的八位字节)。

CR (十进制值 13 )和 LF (十进制值 10 )仅仅作为行之间分离符号出现( crlf 之后的数据按新行计数)。

3 、 binary

参考 rfc2045

二进制数据允许任何形式表示。

目前 市场上的邮件安全产品大都是一套封闭邮件系统,部署上存在使用户放弃原来的账户使用新账户的问题,这就导致在部署时存在一定困难。在邮件透明加密产品中,天御云安的隐秘邮很新颖,使用安全邮件网关对邮件透明加密,用户完全感知不到邮件网关的存在,但是邮件在服务器上却穿上了盔甲,任你黑客攻破服务器,看到的邮件却是一堆乱码。隐秘邮网址:

转载自:http://blog.itpub.net/69911143/viewspace-2637279/