18.6. mimetools — 用于解析 MIME 消息的工具 — Python 文档

来自菜鸟教程
Python/docs/2.7/library/mimetools
跳转至:导航、​搜索

18.6. 模仿工具 — 解析 MIME 消息的工具

自 2.3 版起已弃用:email 包应优先于 mimetools 模块使用。 该模块的存在只是为了保持向后兼容性,它已在 3.x 中删除。


该模块定义了 rfc822 模块的 Message 类的子类和许多对 MIME 多部分或编码消息的操作有用的实用函数。

它定义了以下项目:

class mimetools.Message(fp[, seekable])
返回 Message 类的新实例。 这是 rfc822.Message 类的子类,带有一些附加方法(见下文)。 seekable 参数与 rfc822.Message 的含义相同。
mimetools.choose_boundary()
返回一个唯一的字符串,它很有可能用作部件边界。 字符串的格式为 'hostipaddr.uid.pid.timestamp.random'
mimetools.decode(input, output, encoding)
从打开的文件对象 input 中读取使用允许的 MIME encoding 编码的数据,并将解码后的数据写入打开文件对象 outputencoding 的有效值包括 'base64''quoted-printable''uuencode''x-uuencode''uue'、[ X102X]、'7bit''8bit'。 解码以 '7bit''8bit' 编码的消息无效。 输入被简单地复制到输出。
mimetools.encode(input, output, encoding)
从打开的文件对象 input 中读取数据并使用允许的 MIME encoding 将其编码以打开文件对象 outputencoding 的有效值与 decode() 的有效值相同。
mimetools.copyliteral(input, output)
从打开的文件 input 读取行直到 EOF 并将它们写入打开文件 output
mimetools.copybinary(input, output)
从打开的文件 input 读取块直到 EOF,并将它们写入打开文件 output。 块大小目前固定为 8192。

也可以看看

模块电子邮件
全面的电子邮件处理包; 取代 mimetools 模块。
模块 rfc822
提供 mimetools.Message 的基类。
模块 多文件
支持读取包含不同部分的文件,例如 MIME 数据。
http://faqs.cs.uu.nl/na-dir/mail/mime-faq/.html
MIME 常见问题文档。 有关 MIME 的概述,请参阅本文档第 1 部分中问题 1.1 的答案。


18.6.1. 消息对象的附加方法

除了 rfc822.Message 方法之外,Message 类还定义了以下方法:

Message.getplist()
返回 Content-Type 头的参数列表。 这是一个字符串列表。 对于 key=value 形式的参数,key 被转换为小写,但 value 不是。 例如,如果消息包含标题 Content-type: text/html; spam=1; Spam=2; Spam,那么 getplist() 将返回 Python 列表 ['spam=1', 'spam=2', 'Spam']
Message.getparam(name)
为给定的 name 返回形式为 name=value 的第一个参数的 value(由 getplist() 返回)。 如果 value 被形式为 '<...>' 或 '"..."' 的引号包围,则删除它们.
Message.getencoding()
返回 Content-Transfer-Encoding 消息头中指定的编码。 如果不存在这样的标头,则返回 '7bit'。 编码转换为小写。
Message.gettype()
返回 Content-Type 标头中指定的消息类型(形式为 type/subtype)。 如果不存在这样的标头,则返回 'text/plain'。 类型转换为小写。
Message.getmaintype()
返回 Content-Type 标头中指定的主要类型。 如果不存在这样的标头,则返回 'text'。 主要类型转换为小写。
Message.getsubtype()
返回 Content-Type 标头中指定的子类型。 如果不存在这样的标头,则返回 'plain'。 子类型转换为小写。