19.1.10. email.encoders:编码器

源代码: Lib / email / encoders.py

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

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

请注意,这些函数对多部分消息无意义。它们必须应用于单个子部件,如果传递的类型为multipart的消息,则将引用TypeError

这里提供的编码功能:

email.encoders。 T0> encode_quopri T1> ( T2> MSG T3> ) T4> ¶ T5 >

将有效内容编码为可引用的打印格式,并将Content-Transfer-Encoding头设置为quoted-printable [1]当大多数有效内容是正常的可打印数据,但包含几个不可打印的字符时,这是一个很好的编码。

email.encoders。 T0> encode_base64 T1> ( T2> MSG T3> ) T4> ¶ T5 >

将有效负载编码为base64格式,并将Content-Transfer-Encoding头设置为base64当大多数有效负载是不可打印的数据时,这是一个很好的编码,因为它比引用可打印的更紧凑。base64编码的缺点是它使文本非人类可读。

email.encoders。 T0> encode_7or8bit T1> ( T2> MSG T3> ) T4> ¶ T5 >

这实际上不会修改邮件的有效内容,但会将Content-Transfer-Encoding头设置为7bit8bit基于有效载荷数据。

email.encoders。 T0> encode_noop T1> ( T2> MSG T3> ) T4> ¶ T5 >

这没什么;它甚至不设置Content-Transfer-Encoding头。

脚注

[1] T0>请注意,使用encode_quopri()编码也会对数据中的所有制表符和空格字符进行编码。