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子產品中的解析器,可以非常容易地通路和處理消息。