email.header :国际化头

源代码: Lib/email/header.py


此模块属于传统 ( Compat32 ) 电子邮件 API。在当前 API 中,头编码/解码的透明处理是通过像字典 API 的 EmailMessage 类。除用于传统代码外,此模块在需要完全控制使用字符集 (当编码头时) 的应用程序中也很有用。

本节其余文本是模块的原始文档编制。

RFC 2822 是描述 Email 消息格式的基标准。派生自旧 RFC 822 标准曾被广泛使用,当大多数 Email 仅以 ASCII 字符组成时。 RFC 2822 是假定 Email 仅包含 7 位 ASCII 字符而编写的规范。

当然,随着 Email 全世界部署,它已变得国际化,这样,特定语言字符集现在可以在 Email 消息中使用。基标准仍然要求仅使用 7 位 ASCII 字符传输 Email 消息,因此,已编写大量 RFC 描述如何将包含非 ASCII 字符的 Email 编码成 RFC 2822 兼容格式。这些 RFC 包括 RFC 2045 , RFC 2046 , RFC 2047 ,和 RFC 2231 email 包支持这些标准在其 email.header and email.charset 模块。

若想要在 Email 头中包括非 ASCII 字符,请在 Subject or 字段,应该使用 Header 类和赋值字段在 Message 对象到实例化的 Header 而不是使用字符串对于头值。导入 Header 类从 email.header 模块。例如:

>>> from email.message import Message
>>> from email.header import Header
>>> msg = Message()
>>> h = Header('p\xf6stal', 'iso-8859-1')
>>> msg['Subject'] = h
>>> msg.as_string()
'Subject: =?iso-8859-1?q?p=F6stal?=\n\n'