email.encoders
:编码器¶
此模块是旧版 (Compat32
) email API 的一部分。在新 API 中,该功能由 set_content()
方法的 cte 参数提供。
此模块在 Python 3 中已弃用。不应显式调用此处提供的函数,因为 MIMEText
类使用在该类的实例化过程中传递的 _subtype 和 _charset 值设置内容类型和 CTE 标头。
本节中剩余的文本是模块的原始文档。
从头开始创建 Message
对象时,通常需要对有效邮件服务器传输的有效负载进行编码。对于包含二进制数据的 image/* 和 text/* 类型消息尤其如此。
email
包在其 encoders
模块中提供了一些方便的编码器。这些编码器实际上由 MIMEAudio
和 MIMEImage
类构造函数使用,以提供默认编码。所有编码器函数都采用一个参数,即要编码的消息对象。它们通常会提取有效负载,对其进行编码,然后将有效负载重置为此新编码的值。它们还应根据需要设置 Content-Transfer-Encoding 标头。
请注意,这些函数对于多部分消息没有意义。它们必须应用于各个子部分,并且如果传递类型为多部分的消息,它们将引发 TypeError
。
以下是提供的编码函数
- email.encoders.encode_quopri(msg)¶
将有效负载编码为 quoted-printable 形式,并将 Content-Transfer-Encoding 标头设置为
quoted-printable
[1]。当有效负载的大部分都是普通可打印数据,但包含一些不可打印字符时,这是一个很好的编码方式。
- email.encoders.encode_base64(msg)¶
将有效负载编码为 base64 形式,并将 Content-Transfer-Encoding 标头设置为
base64
。当有效负载的大部分都是不可打印数据时,这是一个很好的编码方式,因为它比 quoted-printable 更紧凑。base64 编码的缺点是它会使文本不可读。
- email.encoders.encode_7or8bit(msg)¶
这实际上不会修改消息的有效负载,但会根据有效负载数据将 Content-Transfer-Encoding 标头设置为
7bit
或8bit
。
- email.encoders.encode_noop(msg)¶
这什么都不做;它甚至不会设置 Content-Transfer-Encoding 标头。
脚注