email.encoders: Encoders
email.encoders: Encoders
Message
从头开始创建对象时,通常需要对通过兼容邮件服务器传输的有效负载进行编码。对于包含二进制数据的image / *
和text / *
类型的消息尤其如此。
该email
软件包在其encoders
模块中提供了一些便利的编码。这些编码器实际使用MIMEAudio
和MIMEImage
类构造函数提供的默认编码。所有的编码器函数只需要一个参数,即消息对象进行编码。他们通常会提取有效负载,对其进行编码,并将有效负载重置为新编码的值。他们还应该适当地设置Content-Transfer-Encoding
标头。
请注意,这些功能对于多部分消息没有意义。它们必须应用于各个子部分,并且会TypeError
传递一个类型为multipart的消息。
Here are the encoding functions provided:
email.encoders.encode_quopri(msg)
将有效载荷编码为quoted-printable
形式,并将Content-Transfer-Encoding
标头设置为quoted-printable
[1]。当大多数有效负载是正常可打印数据,但包含一些不可打印字符时,这是一种很好的编码方式。
email.encoders.encode_base64(msg)
将有效载荷编码为base64
格式,并将Content-Transfer-Encoding
标头设置为base64
。当您的大部分有效内容是不可打印的数据时,这是一种很好的编码方式,因为它比引用打印的形式更紧凑。base64
编码的缺点是它使得文本不可读。
email.encoders.encode_7or8bit(msg)
这实际上并不修改消息的有效负载,但它确实根据有效负载数据将Content-Transfer-Encoding
标头设置为7bit
或8bit
适当。
email.encoders.encode_noop(msg)
这什么都不做; 它甚至不设置Content-Transfer-Encoding
标头。
注
1 | 请注意,使用encode_quopri()进行编码也会对数据中的所有制表符和空格字符进行编码。 |
---|