email — An email and MIME handling package
2.2版本中的新功能。
该email
软件包是用于管理电子邮件消息的库,包括MIME和其他基于RFC 2822
的消息文档。它涵括大部分功能在一些较旧的标准模块,例如rfc822
,mimetools
,multifile
,和其他非标准包如mimecntl
。它并不是
专门用来发送电子邮件到SMTP(RFC 2821
),NNTP或其他服务器的; 这些是诸如smtplib
和的模块的功能nntplib
。所述email
包试图像RFC兼容尽可能,除了支持对RFC 2822
,例如MIME相关的RFC如RFC 2045
,RFC 2046
,RFC 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.5 | Python 2.2.2+和Python 2.3 | Python 2.1到2.5 |
3.0 | Python 2.4 | Python 2.3到2.5 |
4.0 | Python 2.5 | Python 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.Header
和email.Charset
模块已被添加。
13.与之不同 mimelib
这个email
软件包最初是作为一个名为mimelib
的独立库建立的。已经进行了更改,以便方法名称更加一致,并且已添加或删除了一些方法或模块。一些方法的语义也发生了变化。大多数情况下,包中mimelib
仍有可用的任何功能email
,尽管通常采用不同的方式。mimelib
软件包和email
软件包之间的向后兼容性不是优先事项。
这里的之间的差异的简要说明mimelib
和email
包装,以提示沿着如何移植你的应用程序。
当然,这两个软件包之间最明显的区别在于软件包名称已更改为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
在其提供的一些实用功能address
和date
模块。所有这些功能都已移至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中定义。 |
---|