email.message :表示 Email 消息

源代码: Lib/email/message.py


Added in version 3.6: [ 1 ]

中心类在 email 包是 EmailMessage 类,导入自 email.message 模块。它是基类对于 email 对象模型。 EmailMessage 提供设置和查询 Header 头字段、访问消息本体、创建或修改结构化消息的核心功能。

Email 包含 headers payload (也称为 content )。Header 头是 RFC 5322 or RFC 6532 样式的字段名称和值,其中字段名称和值由冒号分隔。冒号不属于字段名称或字段值。负载可以是简单文本消息、二进制对象、或结构化的子消息序列 (每个子消息有自己的一组头和负载)。后一种类型的负载由拥有 MIME (多用途 Internet 邮件扩展) 类型的消息指示,譬如 multipart/* or message/rfc822 .

概念模型的提供通过 EmailMessage 对象,它是有序 Header 头字典耦合 payload 表示 RFC 5322 本体对于消息,可能是列表的子 EmailMessage 对象。除用于访问 Header 头名称和值的正常字典方法外,还有一些方法从头访问专门信息 (例如 MIME 内容类型)、操作负载、生成消息的序列化版本及递归遍历对象树。

The EmailMessage dictionary-like interface is indexed by the header names, which must be ASCII values. The values of the dictionary are strings with some extra methods. Headers are stored and returned in case-preserving form, but field names are matched case-insensitively. The keys are ordered, but unlike a real dict, there can be duplicates. Additional methods are provided for working with headers that have duplicate keys.

The payload 是字符串或字节对象 (在简单消息对象情况下) 或列表的 EmailMessage 对象对于 MIME 容器文档,譬如 multipart/* and message/rfc822 消息对象。

class email.message. EmailMessage ( policy = default )

policy 有指定,使用它指定的规则来更新和序列化消息表示。若 policy 未设置,使用 default 策略,遵循电子邮件 RFC 规则,除了行结束 (而不是 RFC 规定的 \r\n ,它使用 Python 标准 \n 行结束)。更多信息见 policy 文档编制。

as_string ( unixfrom = False , maxheaderlen = None , policy = None )

返回扁平化成字符串的整个消息。当可选 unixfrom 为 True,信封头包括在返回字符串中。 unixfrom 默认为 False 。为向后兼容基 Message class maxheaderlen 被接受,但默认为 None ,意味着默认情况下,控制行长度通过 max_line_length 的策略。 policy 自变量可用于覆盖从消息实例获得的默认策略。这可用于控制通过方法产生的某些格式化,由于指定 policy 会被传递给 Generator .

扁平化消息可能触发改变 EmailMessage 若默认需要填充以完成字符串转换 (例如,可以生成或修改 MIME 边界)。

注意,提供此方法是为了方便,且可能不是在应用程序中序列化消息的最有用方式,尤其是处理多条消息。见 email.generator.Generator 了解用于序列化消息的更灵活 API。另请注意,此方法被限定到产生 7 bit clean 序列化消息当 utf8 is False ,默认。

3.6 版改变: 默认行为当 maxheaderlen 未指定时从默认为 0 改为默认为值 max_line_length 从策略。