email.encoders 编码器

源代码: Lib/email/encoders.py


此模块是传统模块的一部分 (Compat32 )电子邮件API。在新的API中,功能由 cte 的参数 set_content() 方法。

Python3中不推荐使用此模块。此处提供的函数不应显式调用,因为 MIMEText 类使用 _subtype_charset 在该类的实例化期间传递的值。

本节的其余文本是模块的原始文档。

创建时 Message 对象从零开始,您通常需要对通过兼容邮件服务器传输的有效负载进行编码。这尤其适用于 image/*text/* 键入包含二进制数据的消息。

这个 email 软件包提供了一些方便的编码器 encoders 模块。这些编码器实际上是由 MIMEAudioMIMEImage 类构造函数提供默认编码。所有编码器函数只接受一个参数,即要编码的消息对象。它们通常提取有效负载,对其进行编码,然后将有效负载重置为这个新编码的值。他们还应该设置 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 标题到 7bit8bit 根据有效载荷数据,视情况而定。

email.encoders.encode_noop(msg)

这什么都不做,它甚至没有设置 Content-Transfer-Encoding 标题。

脚注

1

请注意,使用 encode_quopri() 同时对数据中的所有制表符和空格字符进行编码。