:编码器 – – 电子邮件和MIME处理包(Python教程)(参考资料)
email.encoders
:编码器
源代码: Lib / email / encoders.py
此模块是legacy(Compat32
)电子邮件API的一部分。在新的API中,功能由cte的set_content()
方法.
本节剩下的文字是模块的原始文件.
创建时Message
从头开始,您经常需要对有效负载进行编码,以便通过兼容的邮件服务器进行传输。对于image/*和text/*类型包含二进制数据的消息尤其如此.
email
package在encoders
模块中提供了一些方便的编码。这些编码器实际上是由MIMEAudio
和MIMEImage
类构造函数提供默认编码。所有编码器函数都只需要一个参数,即要编码的消息对象。它们通常提取payload,对其进行编码,并将有效负载重置为这个新编码的值。还应该设置Content-Transfer-Encoding适当的标题.
注意这些函数对于多部分消息没有意义。它们必须适用于各个子部件,并且会提升TypeError
如果传递了一个类型为multipart的消息
这是提供的编码函数:
email.encoders.
encode_quopri
(msg)-
将有效负载编码为quoted–printable形式并将Content-Transfer-Encoding标题设置为
quoted-printable
[1]。当你的大部分有效载荷都是普通的可打印数据时,这是一个很好的编码,但是包含一些不可打印的字符.
email.encoders.
encode_base64
(msg)-
编码有效载荷进入base64格式并设置Content-Transfer-Encoding标题为
base64
。这是一个goodencoding,当你的大多数有效负载是不可打印的数据时使用,因为它是一个比quoted–printable更紧凑的形式。base64编码的缺点是使文本非人类可读.
email.encoders.
encode_7or8bit
(msg)-
这实际上并没有修改消息的有效负载,但确实将Content-Transfer-Encoding标题设置为
7bit
或8bit
适当的,基于有效载荷数据.
email.encoders.
encode_noop
(msg)-
这什么都不做;它甚至没有设置Content-Transfer-Encoding header.
Footnotes
[1] | 注意用encode_quopri() 编码也编码全部数据中的标签和空格字符. |