email.encoders编码器

源代码: Lib / email / encoders.py


模块是legacy(Compat32电子邮件API的一部分。在新的API中,功能由cteset_content()方法.

本节剩下的文字是模块的原始文件.

创建时Message从头开始,您经常需要对有效负载进行编码,以便通过兼容的邮件服务器进行传输。对于image/*text/*类型包含二进制数据的消息尤其如此.

emailpackage在encoders模块中提供了一些方便的编码。这些编码器实际上是由MIMEAudioMIMEImage类构造函数提供默认编码。所有编码器函数都只需要一个参数,即要编码的消息对象。它们通常提取payload,对其进行编码,并将有效负载重置为这个新编码的值。还应该设置Content-Transfer-Encoding适当的标题.

注意这些函数对于多部分消息没有意义。它们必须适用于各个子部件,并且会提升TypeError如果传递了一个类型为multipart的消息

这是提供的编码函数:

email.encoders.encode_quoprimsg

将有效负载编码为quotedprintable形式并将Content-Transfer-Encoding标题设置为quoted-printable[1]。当你的大部分有效载荷都是普通的可打印数据时,这是一个很好的编码,但是包含一些不可打印的字符.

email.encoders.encode_base64 (msg)

编码有效载荷进入base64格式并设置Content-Transfer-Encoding标题为base64。这是一个goodencoding,当你的大多数有效负载是不可打印的数据时使用,因为它是一个比quotedprintable更紧凑的形式。base64编码的缺点是使文本非人类可读.

email.encoders.encode_7or8bitmsg

这实际上并没有修改消息的有效负载,但确实将Content-Transfer-Encoding标题设置为7bit8bit适当的,基于有效载荷数据.

email.encoders.encode_noop (msg)

这什么都不做;它甚至没有设置Content-Transfer-Encoding header.

Footnotes

[1] 注意用encode_quopri()编码也编码全部数据中的标签和空格字符.