email.mime
: 从新创建 Email 和 MIME 对象
¶
源代码: Lib/email/mime/
此模块属于传统 (
Compat32
) 电子邮件 API。其功能被部分替换由
contentmanager
在新 API 中,但在某些应用程序中这些类可能仍然很有用,即使在非传统代码中。
通常,通过将文件或一些文本传递给剖析器 (剖析文本并返回根消息对象) 获得消息对象结构。不管怎样,也可以从新构建完整消息结构,或者甚至单个
Message
对象通过手动。实际上,也可以采用现有结构和添加新的
Message
对象,移动它们,等等。这为切片和切块 MIME 消息提供了非常方便的接口。
可以创建新的对象结构通过创建
Message
实例,手动添加附件和所有合适 Header 头。但对于 MIME (多用途 Internet 邮件扩展) 消息,
email
包提供了一些使事情变得更容易的方便子类。
这里是类:
email.mime.base.
MIMEBase
(
_maintype
,
_subtype
,
*
,
policy=compat32
,
**_params
)
¶
模块:
email.mime.base
这是基类对于所有 MIME 特定子类的
Message
。通常不会专门创建实例化的
MIMEBase
,虽然可以。
MIMEBase
首要作为更具体的 MIME 感知子类的方便基类而提供。
_maintype
是
Content-Type
主要类型 (如
text
or
image
),和
_subtype
是
Content-Type
次要类型 (如
plain
or
gif
).
_params
是参数键/值字典,且被直接传递给
Message.add_header
.
若
policy
有指定,(默认为
compat32
策略) 将传递给
Message
.
MIMEBase
类始终添加
Content-Type
头 (基于
_maintype
,
_subtype
,和
_params
),和
MIME-Version
头 (始终设为
1.0
).
3.6 版改变: 添加 policy 仅关键词参数。
email.mime.nonmultipart.
MIMENonMultipart
¶
模块:
email.mime.nonmultipart
子类化的
MIMEBase
,这是 MIME 消息的中间基类不是
multipart
。此类的首要目的是防止使用
attach()
方法, 才有意义对于
multipart
消息。若
attach()
被调用,
MultipartConversionError
异常被引发。
email.mime.multipart.
MIMEMultipart
(
_subtype='mixed'
,
boundary=None
,
_subparts=None
,
*
,
policy=compat32
,
**_params
)
¶
模块:
email.mime.multipart
子类化的
MIMEBase
, this is an intermediate base class for MIME messages that are
multipart
。可选
_subtype
默认为
mixed
, but can be used to specify the subtype of the message. A
Content-Type
header of
multipart/_subtype
will be added to the message object. A
MIME-Version
header will also be added.
可选
boundary
is the multipart boundary string. When
None
(the default), the boundary is calculated when needed (for example, when the message is serialized).
_subparts
is a sequence of initial subparts for the payload. It must be possible to convert this sequence to a list. You can always attach new subparts to the message by using the
Message.attach
方法。
可选
policy
自变量默认为
compat32
.
额外参数对于 Content-Type header are taken from the keyword arguments, or passed into the _params argument, which is a keyword dictionary.
3.6 版改变: 添加 policy 仅关键词参数。
email.mime.application.
MIMEApplication
(
_data
,
_subtype='octet-stream'
,
_encoder=email.encoders.encode_base64
,
*
,
policy=compat32
,
**_params
)
¶
模块:
email.mime.application
子类化的
MIMENonMultipart
,
MIMEApplication
class is used to represent MIME message objects of major type
application
.
_data
is a string containing the raw byte data. Optional
_subtype
specifies the MIME subtype and defaults to
octet-stream
.
可选
_encoder
is a callable (i.e. function) which will perform the actual encoding of the data for transport. This callable takes one argument, which is the
MIMEApplication
instance. It should use
get_payload()
and
set_payload()
to change the payload to encoded form. It should also add any
Content-Transfer-Encoding
or other headers to the message object as necessary. The default encoding is base64. See the
email.encoders
模块了解内置编码器的列表。
可选
policy
自变量默认为
compat32
.
_params 被直接传递给基类构造函数。
3.6 版改变: 添加 policy 仅关键词参数。
email.mime.audio.
MIMEAudio
(
_audiodata
,
_subtype=None
,
_encoder=email.encoders.encode_base64
,
*
,
policy=compat32
,
**_params
)
¶
模块:
email.mime.audio
子类化的
MIMENonMultipart
,
MIMEAudio
class is used to create MIME message objects of major type
audio
.
_audiodata
is a string containing the raw audio data. If this data can be decoded by the standard Python module
sndhdr
, then the subtype will be automatically included in the
Content-Type
header. Otherwise you can explicitly specify the audio subtype via the
_subtype
argument. If the minor type could not be guessed and
_subtype
was not given, then
TypeError
被引发。
可选
_encoder
is a callable (i.e. function) which will perform the actual encoding of the audio data for transport. This callable takes one argument, which is the
MIMEAudio
instance. It should use
get_payload()
and
set_payload()
to change the payload to encoded form. It should also add any
Content-Transfer-Encoding
or other headers to the message object as necessary. The default encoding is base64. See the
email.encoders
模块了解内置编码器的列表。
可选
policy
自变量默认为
compat32
.
_params 被直接传递给基类构造函数。
3.6 版改变: 添加 policy 仅关键词参数。
email.mime.image.
MIMEImage
(
_imagedata
,
_subtype=None
,
_encoder=email.encoders.encode_base64
,
*
,
policy=compat32
,
**_params
)
¶
模块:
email.mime.image
子类化的
MIMENonMultipart
,
MIMEImage
class is used to create MIME message objects of major type
image
.
_imagedata
is a string containing the raw image data. If this data can be decoded by the standard Python module
imghdr
, then the subtype will be automatically included in the
Content-Type
header. Otherwise you can explicitly specify the image subtype via the
_subtype
argument. If the minor type could not be guessed and
_subtype
was not given, then
TypeError
被引发。
可选
_encoder
is a callable (i.e. function) which will perform the actual encoding of the image data for transport. This callable takes one argument, which is the
MIMEImage
instance. It should use
get_payload()
and
set_payload()
to change the payload to encoded form. It should also add any
Content-Transfer-Encoding
or other headers to the message object as necessary. The default encoding is base64. See the
email.encoders
模块了解内置编码器的列表。
可选
policy
自变量默认为
compat32
.
_params
被直接传递给
MIMEBase
构造函数。
3.6 版改变: 添加 policy 仅关键词参数。
email.mime.message.
MIMEMessage
(
_msg
,
_subtype='rfc822'
,
*
,
policy=compat32
)
¶
模块:
email.mime.message
子类化的
MIMENonMultipart
,
MIMEMessage
class is used to create MIME objects of main type
message
.
_msg
is used as the payload, and must be an instance of class
Message
(or a subclass thereof), otherwise a
TypeError
被引发。
可选 _subtype 设置消息的子类型;默认为 rfc822 .
可选
policy
自变量默认为
compat32
.
3.6 版改变: 添加 policy 仅关键词参数。
email.mime.text.
MIMEText
(
_text
,
_subtype='plain'
,
_charset=None
,
*
,
policy=compat32
)
¶
模块:
email.mime.text
子类化的
MIMENonMultipart
,
MIMEText
类用于创建 MIME (多用途 Internet 邮件扩展) 对象对于主要类型
text
.
_text
是负载字符串。
_subtype
是次要类型且默认为
plain
.
_charset
是文本的字符集且作为自变量被传递给
MIMENonMultipart
构造函数;默认为
us-ascii
若字符串只包含
ascii
代码点,和
utf-8
否则。
_charset
参数接受字符串或
Charset
实例。
除非
_charset
自变量被明确设为
None
,创建的 MIMEText 对象将拥有
Content-Type
头采用
charset
参数,和
Content-Transfer-Encoding
头。这意味着后续
set_payload
调用不会产生编码负载,即使字符集被传入
set_payload
命令。可以 reset 此行为通过删除
Content-Transfer-Encoding
头,之后
set_payload
调用将自动编码新的负载 (和添加新的
Content-Transfer-Encoding
头)。
可选
policy
自变量默认为
compat32
.
3.5 版改变:
_charset
还接受
Charset
实例。
3.6 版改变: 添加 policy 仅关键词参数。