email.mime
:从头创建电子邮件和MIME对象¶
源代码: Lib/email/mime/
此模块是传统模块的一部分 (Compat32
)电子邮件API。其功能部分由 contentmanager
在新的API中,但在某些应用程序中,这些类可能仍然有用,即使在非遗留代码中也是如此。
通常,通过将文件或某些文本传递给解析器来获得消息对象结构,解析器解析文本并返回根消息对象。但是,您也可以从头构建一个完整的消息结构,甚至是单个消息结构 Message
手工物品。实际上,您还可以采用现有结构并添加新的 Message
对象,移动它们,等等。这使得分割和切割mime消息的界面非常方便。
可以通过创建 Message
实例,手动添加附件和所有适当的头。但是,对于mime消息, email
包提供了一些方便的子类,使事情变得容易。
课程如下:
- class email.mime.base.MIMEBase(_maintype, _subtype, *, policy=compat32, **_params)¶
模块:
email.mime.base
这是所有特定于mime的子类的基类
Message
. 通常,您不会专门创建MIMEBase
尽管你可以。MIMEBase
主要作为更具体的支持mime的子类的一个方便的基类提供。_maintype 是 Content-Type 主要类型(例如 text 或 image ) _subtype 是 Content-Type 次要类型(例如 plain 或 gif ) _params 是参数键/值字典,并直接传递给
Message.add_header
.如果 policy 已指定,(默认为
compat32
策略)它将传递给Message
.这个
MIMEBase
类始终添加 Content-Type 标题(基于 _maintype , _subtype 和 _params )和 MIME-Version 标题(始终设置为1.0
)在 3.6 版更改: 补充 policy 仅关键字参数。
- class email.mime.nonmultipart.MIMENonMultipart¶
模块:
email.mime.nonmultipart
一个子类
MIMEBase
,这是一个中间基类,用于 multipart . 此类的主要目的是防止使用attach()
方法,只对 multipart 信息。如果attach()
被称为MultipartConversionError
引发异常。
- class email.mime.multipart.MIMEMultipart(_subtype='mixed', boundary=None, _subparts=None, *, policy=compat32, **_params)¶
模块:
email.mime.multipart
一个子类
MIMEBase
,这是用于 multipart . 可选的 _subtype 默认为 mixed ,但可以用于指定消息的子类型。一 Content-Type 标题 multipart/_subtype 将添加到消息对象。一 MIME-Version 还将添加标题。可选的 边界 是多部分边界字符串。什么时候?
None
(默认值),根据需要计算边界(例如,当消息序列化时)。_subparts 是有效载荷的初始子部件序列。必须可以将此序列转换为列表。您可以使用
Message.attach
方法。可选的 policy 参数默认为
compat32
.的附加参数 Content-Type 头从关键字参数中获取,或传递到 _params 参数,它是关键字字典。
在 3.6 版更改: 补充 policy 仅关键字参数。
- class email.mime.application.MIMEApplication(_data, _subtype='octet-stream', _encoder=email.encoders.encode_base64, *, policy=compat32, **_params)¶
模块:
email.mime.application
一个子类
MIMENonMultipart
, theMIMEApplication
类用于表示主要类型的mime消息对象 application . _data 是包含原始字节数据的字符串。可选的 _subtype 指定mime子类型并默认为 octet-stream .可选的 _encoder 是一个可调用的(即函数),它将执行传输数据的实际编码。此可调用项采用一个参数,即
MIMEApplication
实例。应该使用get_payload()
和set_payload()
将有效负载更改为编码形式。它还应该添加 Content-Transfer-Encoding 或消息对象的其他头(如有必要)。默认编码是base64。见email.encoders
用于内置编码器列表的模块。可选的 policy 参数默认为
compat32
._params 直接传递给基类构造函数。
在 3.6 版更改: 补充 policy 仅关键字参数。
- class email.mime.audio.MIMEAudio(_audiodata, _subtype=None, _encoder=email.encoders.encode_base64, *, policy=compat32, **_params)¶
模块:
email.mime.audio
一个子类
MIMENonMultipart
, theMIMEAudio
类用于创建主要类型的mime消息对象 audio . _audiodata 是包含原始音频数据的字符串。如果这个数据可以被标准的python模块解码sndhdr
,则子类型将自动包含在 Content-Type 标题。否则,可以通过 _subtype 参数。如果无法猜测次要类型, _subtype 没有给,那么TypeError
提高了。可选的 _encoder 是一个可调用的(即函数),它将执行音频数据的实际编码以进行传输。此可调用项采用一个参数,即
MIMEAudio
实例。应该使用get_payload()
和set_payload()
将有效负载更改为编码形式。它还应该添加 Content-Transfer-Encoding 或消息对象的其他头(如有必要)。默认编码是base64。见email.encoders
用于内置编码器列表的模块。可选的 policy 参数默认为
compat32
._params 直接传递给基类构造函数。
在 3.6 版更改: 补充 policy 仅关键字参数。
- class email.mime.image.MIMEImage(_imagedata, _subtype=None, _encoder=email.encoders.encode_base64, *, policy=compat32, **_params)¶
模块:
email.mime.image
一个子类
MIMENonMultipart
, theMIMEImage
类用于创建主要类型的mime消息对象 image . _imagedata 是包含原始图像数据的字符串。如果这个数据可以被标准的python模块解码imghdr
,则子类型将自动包含在 Content-Type 标题。否则,可以通过 _subtype 参数。如果无法猜测次要类型, _subtype 没有给,那么TypeError
提高了。可选的 _encoder 是一个可调用的(即函数),它将执行图像数据的实际编码以进行传输。此可调用项采用一个参数,即
MIMEImage
实例。应该使用get_payload()
和set_payload()
将有效负载更改为编码形式。它还应该添加 Content-Transfer-Encoding 或消息对象的其他头(如有必要)。默认编码是base64。见email.encoders
用于内置编码器列表的模块。可选的 policy 参数默认为
compat32
._params 直接通过
MIMEBase
构造函数。在 3.6 版更改: 补充 policy 仅关键字参数。
- class email.mime.message.MIMEMessage(_msg, _subtype='rfc822', *, policy=compat32)¶
模块:
email.mime.message
一个子类
MIMENonMultipart
, theMIMEMessage
类用于创建主类型的mime对象 message . _msg 用作有效负载,并且必须是类的实例Message
(或其子类),否则TypeError
提高了。可选的 _subtype 设置消息的子类型;默认为 rfc822 .
可选的 policy 参数默认为
compat32
.在 3.6 版更改: 补充 policy 仅关键字参数。
- class email.mime.text.MIMEText(_text, _subtype='plain', _charset=None, *, policy=compat32)¶
模块:
email.mime.text
一个子类
MIMENonMultipart
, theMIMEText
类用于创建主要类型的mime对象 text . _text 是有效负载的字符串。 _subtype 是次要类型,默认为 plain . _charset 是文本的字符集,并作为参数传递给MIMENonMultipart
构造函数;默认为us-ascii
如果字符串只包含ascii
代码点,以及utf-8
否则。这个 _charset 参数接受字符串或Charset
实例。除非 _charset 参数显式设置为
None
,创建的mimetext对象将同时具有 Content-Type 头与Acharset
参数,以及 Content-Transfer-Encoding 标题。这意味着set_payload
即使在set_payload
命令。您可以通过删除Content-Transfer-Encoding
标题,之后是set_payload
调用将自动对新的有效负载进行编码(并添加新的有效负载 Content-Transfer-Encoding 标题)。可选的 policy 参数默认为
compat32
.在 3.5 版更改: _charset 也接受
Charset
实例。在 3.6 版更改: 补充 policy 仅关键字参数。