Python

email

email — An email and MIME handling package

2.2版本中的新功能。

email软件包是用于管理电子邮件消息的库,包括MIME和其他基于RFC 2822的消息文档。它涵括大部分功能在一些较旧的标准模块,例如rfc822mimetoolsmultifile,和其他非标准包如mimecntl。它并不是专门用来发送电子邮件到SMTP(RFC 2821),NNTP或其他服务器的; 这些是诸如smtplib和的模块的功能nntplib。所述email包试图像RFC兼容尽可能,除了支持对RFC 2822,例如MIME相关的RFC如RFC 2045RFC 2046RFC 2047,和RFC 2231

email软件包的主要特色是它将电子邮件内部对象模型表示的电子邮件消息分解并生成。使用该email软件包的应用程序主要处理对象; 您可以将子对象添加到消息中,从消息中删除子对象,完全重新排列内容等。有一个单独的解析器和一个单独的生成器,用于处理从平面文本到对象模型的转换,然后返回到再次平面文字。对于一些常见的MIME对象类型,还有一些方便的子类,以及一些可用于提取和分析消息字段值以及创建RFC兼容日期等常见任务的其他实用程序。

以下部分描述了该email软件包的功能。顺序遵循一种在应用程序中应该普遍的进程:电子邮件从文件或其他来源读取为平面文本,解析文本以生成电子邮件消息的对象结构,操纵此结构,最后,对象树被重新绘制成平面文本。

用整块布来制作物体结构是完全可行的 - 即完全从头开始。从那里,可以采取与上面类似的进展。

此外还包括了email软件包提供的所有类和模块的详细规范,使用该email软件包时可能遇到的异常类,一些辅助实用程序以及一些示例。对于旧版mimelib软件包或旧版软件包的用户email,提供了有关差异和移植的部分。

该内容email包的文档:

  • 18.1.1。email.message:代表电子邮件

12.包装历史

此表描述了电子邮件包的发行历史记录,对应于发行该包的Python版本。对于本文档来说,当您看到关于更改或添加版本的备注时,这些参考是指已进行更改的Python版本,而不是电子邮件包版本。该表还描述了每个软件包版本的Python兼容性。

邮件版本分发与...兼容
1.x中Python 2.2.0到Python 2.2.1不再支持
2.5Python 2.2.2+和Python 2.3Python 2.1到2.5
3.0Python 2.4Python 2.3到2.5
4.0Python 2.5Python 2.3到2.5

以下是email版本4和版本3 之间的主要区别:

  • 所有模块已根据PEP 8标准重新命名。例如,版本3模块在版本4中email.Message重命名为email.message

以下是email版本3和版本2 之间的主要区别:

  • FeedParser课程被引入,并且该Parser课程是按照该课程实施的FeedParser。因此,所有解析都是非严格的,解析将尽最大努力永远不会引发异常。解析消息时发现的问题存储在消息的缺陷属性中。

以下是email版本2和版本1 之间的区别:

  • email.Headeremail.Charset模块已被添加。

13.与之不同 mimelib

这个email软件包最初是作为一个名为mimelib的独立库建立的。已经进行了更改,以便方法名称更加一致,并且已添加或删除了一些方法或模块。一些方法的语义也发生了变化。大多数情况下,包中mimelib仍有可用的任何功能email,尽管通常采用不同的方式。mimelib软件包和email软件包之间的向后兼容性不是优先事项。

这里的之间的差异的简要说明mimelibemail包装,以提示沿着如何移植你的应用程序。

当然,这两个软件包之间最明显的区别在于软件包名称已更改为email。另外,顶级套餐有以下不同之处:

  • messageFromString()已更名为message_from_string()

Message门课有以下不同之处:

  • 该方法asString()已重命名为as_string()

Parser班在其公共接口没有差别。它确实有一些额外的智能来识别消息/传送状态类型消息,它表示为Message包含Message传送状态通知[1]中每个标题块的单独子部分的实例。

Generator班在其公共接口没有差别。email.generator虽然模块中有一个新类,但DecodedGenerator它提供了以前在该Message.getpayloadastext()方法中可用的大部分功能。

以下模块和类已更改:

  • MIMEBase类的构造函数参数_major_minor已更改为_maintype_subtype分别。

mimelib在其提供的一些实用功能addressdate模块。所有这些功能都已移至email.utils模块。

The MsgReader class/module has been removed. Its functionality is most closely supported in the body_line_iterator() function in the email.iterators module.

1传递状态通知(DSN)在RFC 1894中定义。