email.iterators: 이터레이터

소스 코드: Lib/email/iterators.py


메시지 객체 트리를 이터레이트 하는 것은 Message.walk 메서드를 사용하면 매우 쉽습니다. email.iterators 모듈은 메시지 객체 트리에 대한 유용한 고수준 이터레이션을 제공합니다.

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

msg의 모든 서브 파트에 있는 모든 페이 로드를 이터레이트 하여, 문자열 페이 로드를 한 줄씩 반환합니다. 모든 서브 파트 헤더를 건너뛰고, 파이썬 문자열이 아닌 페이 로드가 있는 서브 파트를 건너뜁니다. 이는 readline()을 사용하여 파일에서 메시지의 평평한(flat) 텍스트 표현을 읽는 것과 다소 유사하며, 모든 중간 헤더를 건너뜁니다.

선택적 decodeMessage.get_payload로 전달됩니다.

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

msg의 모든 서브 파트를 이터레이트 하여, maintypesubtype으로 지정된 MIME 유형과 일치하는 서브 파트만 반환합니다.

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가 참이면, 기본 유형도 인쇄합니다.