email.iterators:イテレーター—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/3.8/library/email.iterators
移動先:案内検索

email.iterators :イテレータ

ソースコード: :source: `Lib / email / iterators.py`



Message.walk メソッドを使用すると、メッセージオブジェクトツリーを反復処理するのは非常に簡単です。 email.iterators モジュールは、メッセージオブジェクトツリーに対していくつかの有用な高レベルの反復を提供します。

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

これは、 msg のすべてのサブパートのすべてのペイロードを反復処理し、文字列ペイロードを1行ずつ返します。 すべてのサブパートヘッダーをスキップし、Python文字列ではないペイロードを持つサブパートをスキップします。 これは、 readline()を使用してファイルからメッセージのフラットテキスト表現を読み取り、間にあるすべてのヘッダーをスキップすることとある程度同等です。

オプションのデコードMessage.get_payload に渡されます。

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

これは、 msg のすべてのサブパーツを反復処理し、 maintype および subtype で指定されたMIMEタイプに一致するサブパーツのみを返します。

サブタイプはオプションであることに注意してください。 省略した場合、サブパートMIMEタイプの照合はメインタイプでのみ行われます。 maintype もオプションです。 デフォルトは text です。

したがって、デフォルトでは、 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 は、trueの場合、デフォルトのタイプも出力します。