email --- 电�邮件与 MIME 处�包¶

�代�: Lib/email/__init__.py


email 包是一个用于管�电�邮件消�的库。 它 并� 被设计为执行� SMTP (RFC 2821), NNTP 或其他�务器��电�邮件消�的�作;这些是 smtplib 和 nntplib 等模�的功能。 email 包试图尽�能地�循 RFC,支� RFC 5322 和 RFC 6532,以�与 MIME 相关的�个 RFC 例如 RFC 2045, RFC 2046, RFC 2047, RFC 2183 和 RFC 2231。

email 包的总体结构�以分为三个主�组件,�外还有第四个组件用于控制其他组件的行为。

这个包的中心组件是代表电�邮件消�的“对象模型�。 应用程�主�通过在 message �模�中定义的对象模型接�与这个包进行交互。 应用程��以使用此 API �询问有关现有电�邮件的问题�构造新的电�邮件,或者添加或移除自身也使用相�对象模型接�的电�邮件�组件。 也就是说,�循电�邮件消��其 MIME �组件的性质,电�邮件对象模型是所有�供 EmailMessage API 的对象所构�的树状结构。

这个包的�外两个主�组件是 parser 和 generator。 parser 接�电�邮件消�的�列化版本(字节�)并将其转�为 EmailMessage 对象树。 generator 接� EmailMessage 并将其转回�列化的字节�。 (parser 和 generator 还能处�文本字符�,但�建议这�用法,因为这很容易导致��形�的无效消�。

控制组件是 policy 模�。 �一个 EmailMessage��一个 generator 和�一个 parser 都有一个相关�的 policy 对象�控制其行为。 通常应用程��有在 EmailMessage 被创建时�需�指明控制策略,或者通过直接实例代 EmailMessage �新建电�邮件,或者通过使用 parser �解�输入�。 但是策略也�以在使用 generator �列化消�时被更改。 例如,这�许从�盘解�通用电�邮件消�,而在将消���到电�邮件�务器时使用标准 SMTP 设置对其进行�列化。

email 包会尽�地对应用程�����控制类 RFC 的细节。 从概念上讲应用程�应当能够将电�邮件消�视为 Unicode 文本和二进制附件的结构化树,而�必担心在�列化时�如何表示它们。 但在实际中,�常有必�至少了解一部分控制类 MIME 消��其结构的规划,特别是 MIME "内容类型" 的�称和性质以�它们是如何标识多部分文档的。 在大多数情况下这些知识应当仅对于更��的应用程��说�是必需的,并且�便在那时它也应当仅是特定的高层级结构,而�是如何表示这些结构的细节信�。 由于 MIME 内容类型被广泛应用于现代因特网软件(而��是电�邮件),因此这对许多程�员�说将是很熟悉的概念。

以下�节�述了 email 包的具体功能。 我们会从 message 对象模型开始,它是应用程�将�使用的主�接�,之�是 parser 和 generator 组件。 然�我们会介� policy 控制组件,它将完�对这个库的主�组件的处�。

接下�的三个�节会介�这个包�能引�的异常以� parser �能检测到的缺陷(�与 RFC �相符)。 然�我们会介� headerregistry 和 contentmanager �组件,它们分别�供了用于更精细地�纵标题和载�的工具。 这两个组件除了包�使用与生��简�消�的相关特性,还记录了它们的�扩展性 API,这将是高级应用程�所感兴趣的内容。

在此之�是一组使用之��节所介�的 API 的基本部分的示例。

��的内容是 email 包的现代(对 Unicode 支�良好)API。 从 Message 类开始的其余�节则介�了旧� compat32 API,它会更直接地处�如何表示电�邮件消�的细节。 compat32 API �会 �应用程��� RFC 的相关细节,但对于需�进行此�层级�作的应用程��说将是很有用的工具。 此文档对于因�下兼容�由而�然使用 compat32 API 的应用程�也是很适�的。

在 3.6 版本�生�更: 文档�过�新组织和撰写以鼓励使用新的 EmailMessage/EmailPolicy API。

email 包文档的内容:

旧� API:

��

smtplib 模�

SMTP (简�邮件传输�议) 客户端

poplib 模�

POP (邮局�议) 客户端

imaplib 模�

IMAP (互�网消�访问�议) 客户端

nntplib 模�

NNTP (网络新闻传输�议) 客户端

mailbox 模�

创建�读�和管�使用�存在�盘中的多�标准格�的消�集的工具。