email.mime从头开始创建电子邮件和MIME对象

源代码: Lib / email / mime


/这个模块是遗产的一部分(Compat32电子邮件API。它的功能部分被contentmanager在新的API中,但在某些应用程序中,这些类可能仍然有用,即使在非标准代码中也是如此.

通常,通过将文件或一些文本传递给解析器来获取消息对象结构,该解析器解析文本并返回根消息对象。你怎么也可以从头开始建立一个完整的消息结构,甚至个人Message手工制作的物品。实际上,你也可以采用一个现有的结构并添加新的Message对象,移动地面等。这为切片和切割MIMEmessages提供了一个非常方便的界面.

您可以通过创建Message实例,手动添加附件和所有适当的标头来创建新的对象结构。但对于MIMEmessages,emailpackage提供了一些方便的子类来简化事情.

这是类:

class email.mime.base.MIMEBase_maintype, _subtype, *, policy=compat32, **_params

模块:email.mime.base

这是Message。通常情况下你不会创建MIMEBase的实例,尽管你可以。MIMEBase主要是为更具体的MIME感知子类提供方便的基类.

_maintypeContent-Type主要类型(例如textimage)和_subtypeContent-Type minortype(例如plaingif)。_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的子类,MIMEAudioclass用于创建主要类型的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

MIMENonMultipartMIMEImage类用于创建主要类型的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直接传递给MIMEBaseconstructor.

更改版本3.6:添加了policykey-only parameter.

class email.mime.message.MIMEMessage(_msg, _subtype=”rfc822″, *, policy=compat32)

Module:email.mime.message

MIMENonMultipart的子类,MIMEMessageclass用于创建主类型的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-Typeheaderwith charset参数和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关键字参数.

评论被关闭。