email.iterators: پیمایش‌گرها

کد منبع: Lib/email/iterators.py


پیمایش روی یک درخت شیء پیام با متد Message.walk نسبتاً آسان است. ماژول email.iterators چند پیمایش سطح بالاتر مفید روی درخت‌های شیء پیام ارائه می‌دهد.

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

این تمام بارها در همه‌ی زیربخش‌های msg را پیمایش می‌کند و بارهای رشته‌ای را خط‌به‌خط برمی‌گرداند. این تمام سرآیند‌های زیربخش‌ها را نادیده می‌گیرد و از هر زیربخشی که بار آن یک رشته‌ی پایتون نیست، صرف‌نظر می‌کند. این کار تا حدی معادل خواندن نمایش متنی مسطح پیام از یک پرونده با استفاده از readline() و نادیده گرفتن تمام سرآیند‌های میانی است.

آرگومان اختیاری decode به Message.get_payload ارسال می‌شود.

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

این تمام زیربخش‌های msg را پیمایش می‌کند و فقط آن زیربخش‌هایی را برمی‌گرداند که با نوع MIME تعیین‌شده توسط maintype و subtype مطابقت دارند.

توجه داشته باشید که subtype اختیاری است؛ اگر حذف شود، تطبیق نوع 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 یک شیء شبه‌پرونده است که خروجی در آن چاپ می‌شود. این شیء باید برای تابع print() پایتون مناسب باشد. level به‌صورت داخلی استفاده می‌شود. include_default، اگر true باشد، نوع پیش‌فرض را نیز چاپ می‌کند.