email.iterators: Trình vòng lặp

Source code: Lib/email/iterators.py


Việc lặp lại cây đối tượng thông báo khá dễ dàng với phương thức Message.walk. Mô-đun email.iterators cung cấp một số lần lặp cấp cao hơn hữu ích trên cây đối tượng thông báo.

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

Việc này lặp lại tất cả các tải trọng trong tất cả các phần con của msg, trả về các tải trọng chuỗi theo từng dòng một. Nó bỏ qua tất cả các tiêu đề của phần con và nó bỏ qua bất kỳ phần con nào có tải trọng không phải là chuỗi Python. Điều này phần nào tương đương với việc đọc phần trình bày văn bản phẳng của tin nhắn từ một tệp bằng readline(), bỏ qua tất cả các tiêu đề can thiệp.

decode tùy chọn được chuyển tới Message.get_payload.

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

Điều này lặp lại trên tất cả các phần con của msg, chỉ trả về những phần con phù hợp với loại MIME được chỉ định bởi maintypesubtype.

Lưu ý rằng subtype là tùy chọn; nếu bị bỏ qua, thì việc khớp loại phần con MIME chỉ được thực hiện với loại chính. maintype cũng là tùy chọn; nó mặc định là text.

Do đó, theo mặc định, typed_subpart_iterator() trả về từng phần con có loại MIME là text/*.

Chức năng sau đã được thêm vào như một công cụ gỡ lỗi hữu ích. Nó nên được coi là not một phần của giao diện chung được hỗ trợ cho gói.

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

In bản trình bày thụt lề của các loại nội dung của cấu trúc đối tượng thông báo. Ví dụ:

>>> tin nhắn = email.message_from_file(somefile)
>>> _cấu trúc (tin nhắn)
nhiều phần/hỗn hợp
    văn bản/đồng bằng
    văn bản/đồng bằng
    nhiều phần/tiêu hóa
        tin nhắn/rfc822
            văn bản/đồng bằng
        tin nhắn/rfc822
            văn bản/đồng bằng
        tin nhắn/rfc822
            văn bản/đồng bằng
        tin nhắn/rfc822
            văn bản/đồng bằng
        tin nhắn/rfc822
            văn bản/đồng bằng
    văn bản/đồng bằng

Tùy chọn fp là một đối tượng giống như tệp để in đầu ra. Nó phải phù hợp với hàm print() của Python. level được sử dụng nội bộ. include_default, nếu đúng, cũng in kiểu mặc định.