email.encoders
编码器¶
此模块是传统模块的一部分 (Compat32
)电子邮件API。在新的API中,功能由 cte 的参数 set_content()
方法。
Python3中不推荐使用此模块。此处提供的函数不应显式调用,因为 MIMEText
类使用 _subtype 和 _charset 在该类的实例化期间传递的值。
本节的其余文本是模块的原始文档。
创建时 Message
对象从零开始,您通常需要对通过兼容邮件服务器传输的有效负载进行编码。这尤其适用于 image/* 和 text/* 键入包含二进制数据的消息。
这个 email
软件包提供了一些方便的编码器 encoders
模块。这些编码器实际上是由 MIMEAudio
和 MIMEImage
类构造函数提供默认编码。所有编码器函数只接受一个参数,即要编码的消息对象。它们通常提取有效负载,对其进行编码,然后将有效负载重置为这个新编码的值。他们还应该设置 Content-Transfer-Encoding 视情况而定。
请注意,这些函数对于多部分消息没有意义。它们必须应用于单独的子部分,并且将 TypeError
如果传递的消息类型为multipart。
以下是提供的编码功能:
- 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()
同时对数据中的所有制表符和空格字符进行编码。