:从头开始创建电子邮件和MIME对象 – 电子邮件和MIME处理包(Python教程)(参考资料)
email.mime
:从头开始创建电子邮件和MIME对象
/这个模块是遗产的一部分(Compat32
)电子邮件API。它的功能部分被contentmanager
在新的API中,但在某些应用程序中,这些类可能仍然有用,即使在非标准代码中也是如此.
通常,通过将文件或一些文本传递给解析器来获取消息对象结构,该解析器解析文本并返回根消息对象。你怎么也可以从头开始建立一个完整的消息结构,甚至个人Message
手工制作的物品。实际上,你也可以采用一个现有的结构并添加新的Message
对象,移动地面等。这为切片和切割MIMEmessages提供了一个非常方便的界面.
您可以通过创建Message
实例,手动添加附件和所有适当的标头来创建新的对象结构。但对于MIMEmessages,email
package提供了一些方便的子类来简化事情.
这是类:
- class
email.mime.base.
MIMEBase
(_maintype, _subtype, *, policy=compat32, **_params) -
模块:
email.mime.base
这是
Message
。通常情况下你不会创建MIMEBase
的实例,尽管你可以。MIMEBase
主要是为更具体的MIME感知子类提供方便的基类._maintype是Content-Type主要类型(例如text或image)和_subtype是Content-Type minortype(例如plain或gif)。_params是一个parameterkey / value字典,直接传递给
Message.add_header
.如果policy指定,(默认为
compat32
策略)它将传递给Message
.MIMEBase
类总是添加一个Content-Type标题(基于_maintype, _subtype,和_params),和MIME-Version标题(总是设置为1.0
).在版本3.6中更改:添加policy keyword-only参数.
- class
email.mime.nonmultipart.
MIMENonMultipart
-
模块:
email.mime.nonmultipart
MIMEBase
的子类,这是一个MIME消息的中间基类,不是multipart。这个类的主要用途是防止使用attach()
方法,这只对multipart消息有意义。如果调用attach()
,则会引发MultipartConversionError
异常.
- class
email.mime.multipart.
MIMEMultipart
(_subtype=”mixed”, boundary=None, _subparts=None, *, policy=compat32, **_params) -
模块:
email.mime.multipart
的子类
MIMEBase
,这是MIME消息的中间基类multipart。可选的 _subtype默认为mixed,但可用于指定themessage的子类型。一个 Content-Type的标题multipart/_subtype将被添加到消息对象中。一个 MIME-Version标题willalso被添加.可选的 boundary是多部分边界字符串。什么时候
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
的子类,MIMEApplication
类用于表示主要类型的MIME消息对象application. _data是包含rawbyte数据的字符串。可选_subtype指定MIME子类型,默认为octet-stream.可选_encoder是可调用的(即函数),它将执行数据的执行编码以便传输。这个callable接受一个参数,即
MIMEApplication
实例。它应该使用get_payload()
和set_payload()
将有效负载更改为encodedform。它还应该根据需要添加Content-Transfer-Encoding或其他标题到messageobject。默认编码为base64。见email.encoders
用于内置编码器列表的模块.可选policy参数默认为
compat32
._params直接传递给基类构造函数.
更改在版本3.6:添加了policykey-only parameter.
- class
email.mime.audio.
MIMEAudio
(_audiodata, _subtype=None, _encoder=email.encoders.encode_base64, *, policy=compat32, **_params) -
Module:
email.mime.audio
MIMENonMultipart
的子类,MIMEAudio
class用于创建主要类型的MIME消息对象audio. _audiodata是包含原始音频数据的字符串。如果这个数据可以被标准的Python模块sndhdr
解码,那么子类将自动包含在Content-Type标题中。否则你可以通过_subtype参数显式指定音频子类型。如果没有猜到次要类型而没有给出_subtype,那么TypeError
就会被提起可选_encoder是一个可调用的(即函数)将执行音频数据的执行编码以便传输。这个callable接受一个参数,即
MIMEAudio
实例。应该使用get_payload()
和set_payload()
将有效负载更改为encodedform。它还应该根据需要添加Content-Transfer-Encoding或其他标题到messageobject。默认编码为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
,MIMEImage
类用于创建主要类型的MIME消息对象image. _imagedata是包含原始图像数据的字符串。如果这个数据可以通过标准的Python模块imghdr
解码,那么子类将自动包含在Content-Type标题中。否则你可以通过_subtype参数显式指定图像子类型。如果没有猜到次要类型而没有给出_subtype,那么TypeError
就会被提起可选_encoder是一个可调用的(即函数)将执行图像数据的执行编码以便传输。这个callable接受一个参数,即
MIMEImage
实例。应该使用get_payload()
和set_payload()
将有效负载更改为encodedform。它还应该根据需要添加Content-Transfer-Encoding或其他标题到messageobject。默认编码为base64。请参阅email.encoders
模块以获取内置编码器列表.可选policy参数默认为
compat32
._params直接传递给
MIMEBase
constructor.更改版本3.6:添加了policykey-only parameter.
- class
email.mime.message.
MIMEMessage
(_msg, _subtype=”rfc822″, *, policy=compat32) -
Module:
email.mime.message
MIMENonMultipart
的子类,MIMEMessage
class用于创建主类型的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
的子类,MIMEText
类用于创建MIME对象主要类型text. _text是有效载荷的字符串。_subtype是minor类型,默认为plain. _charset是文本的字符集,并作为参数传递给MIMENonMultipart
构造函数;如果字符串仅包含us-ascii
代码点,则默认为ascii
,否则为utf-8
。_charset参数接受字符串或Charset
instance.除非_charset参数明确设置为
None
,否则为mIMEText对象创造将有一个Content-Typeheaderwithcharset
参数和Content-Transfer-Encoding标题。这意味着即使在set_payload
命令中传递了一个字符集,随后的set_payload
调用也不会产生编码的有效负载。您可以通过删除Content-Transfer-Encoding
标题来“重置”此行为,之后set_payload
callwill会自动编码新的有效负载(并添加一个新的Content-Transfer-Encoding标题).可选policy参数默认为
compat32
.在版本3.5中更改:_charset也接受
Charset
instances.在版本3.6中更改:添加policy关键字参数.
评论被关闭。