19.1.13. email.encoders:编码器 — Python 文档
来自菜鸟教程
Python/docs/3.6/library/email.encoders
19.1.13。 电子邮件编码器 : 编码器
源代码: :source:`Lib/email/encoders.py`
此模块是旧式 (Compat32
) 电子邮件 API 的一部分。 在新 API 中,该功能由 set_content() 方法的 cte 参数提供。
本节的其余文本是该模块的原始文档。
从头开始创建 Message 对象时,您通常需要对有效负载进行编码,以便通过兼容的邮件服务器进行传输。 对于包含二进制数据的 image/* 和 text/* 类型的消息尤其如此。
email 包在其 encoders
模块中提供了一些方便的编码。 MIMEAudio 和 MIMEImage 类构造函数实际上使用这些编码器来提供默认编码。 所有编码器函数都只接受一个参数,即要编码的消息对象。 他们通常提取有效载荷,对其进行编码,然后将有效载荷重置为这个新编码的值。 他们还应该根据需要设置 Content-Transfer-Encoding 标头。
请注意,这些函数对于多部分消息没有意义。 它们必须改为应用于单个子部分,并且如果传递类型为多部分的消息,则会引发 TypeError。
以下是提供的编码函数:
- email.encoders.encode_quopri(msg)
- 将有效负载编码为带引号的可打印形式,并将 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() 进行编码也会对数据中的所有制表符和空格字符进行编码。