天天看點

第十二章:email-mailbox:管理email歸檔-imaplib:IMAP4客戶庫-完整消息

13.4.10 完整消息

如前所述,客戶可以向伺服器單獨請求消息中的單個部分。還可以擷取整個消息(采用RFC 822規範格式化的郵件消息),并用email子產品的類進行解釋。

import imaplib
import email
import email.parser

import imaplib_connect


with imaplib_connect.open_connection() as c:
    c.select('INBOX',readonly=True)

    typ,msg_data = c.fetch('1','(RFC822)')
    for response_part in msg_data:
        if isinstance(response_part,tuple):
            email_parser = email.parser.BytesFeedParser()
            email_parser.feed(response+part[1])
            msg = email_parser.close()
            for header in ['subject','to','from']:
                print('{:^8}: {}'.format(
                    header.upper(),msg[header]))
           

利用email子產品中的解析器,可以非常容易地通路和處理消息。