19.1.15. email.iterators:迭代器 — Python 文档

来自菜鸟教程
Python/docs/3.6/library/email.iterators
跳转至:导航、​搜索

19.1.15。 电子邮件迭代器 : 迭代器

源代码: :source:`Lib/email/iterators.py`



使用 Message.walk 方法迭代消息对象树相当容易。 email.iterators 模块提供了一些有用的对消息对象树的更高级别的迭代。

email.iterators.body_line_iterator(msg, decode=False)

这将遍历 msg 的所有子部分中的所有有效负载,逐行返回字符串有效负载。 它跳过所有子部分标头,并跳过任何带有不是 Python 字符串的有效负载的子部分。 这有点等同于使用 readline() 从文件中读取消息的纯文本表示,跳过所有中间标题。

可选的 decode 传递给 Message.get_payload

email.iterators.typed_subpart_iterator(msg, maintype='text', subtype=None)

这将迭代 msg 的所有子部分,仅返回那些与 maintypesubtype 指定的 MIME 类型匹配的子部分。

注意 子类型 是可选的; 如果省略,则子部分 MIME 类型匹配仅与主类型进行匹配。 maintype 也是可选的; 它默认为 文本

因此,默认情况下 typed_subpart_iterator() 返回 MIME 类型为 text/* 的每个子部分。

添加了以下功能作为有用的调试工具。 它应该 而不是 被视为包支持的公共接口的一部分。

email.iterators._structure(msg, fp=None, level=0, include_default=False)

打印消息对象结构的内容类型的缩进表示。 例如:

>>> msg = email.message_from_file(somefile)
>>> _structure(msg)
multipart/mixed
    text/plain
    text/plain
    multipart/digest
        message/rfc822
            text/plain
        message/rfc822
            text/plain
        message/rfc822
            text/plain
        message/rfc822
            text/plain
        message/rfc822
            text/plain
    text/plain

可选的 fp 是一个类似文件的对象,用于打印输出。 它必须适用于 Python 的 print() 函数。 level 内部使用。 include_default,如果为真,也会打印默认类型。