2011-06-02 225 views
2

執行響應下面顯示的代碼後,我收到以下響應。我怎樣才能解析通過這個答覆得到發件人(約翰史密斯)和主題(測試)?使用imaplib獲取電子郵件主題和發件人?

[('13010 (BODY[HEADER.FIELDS (SUBJECT FROM)] {57}', 'From: John Smith <[email protected]>\r\nSubject: test\r\n\r\n'), ')'] 

-

conn.fetch(message, '(BODY[HEADER.FIELDS (SUBJECT FROM)])') 

回答

7

也許這個問題/答案here會有所幫助。嘗試這樣的:

from email.parser import HeaderParser 
data = conn.fetch(message, '(BODY[HEADER.FIELDS (SUBJECT FROM)])') 
header_data = data[1][0][1] 
parser = HeaderParser() 
msg = parser.parsestr(header_data) 

然後msg應該是一本字典。

2

您可以嘗試此操作來獲取所有郵件的標題信息。

import imaplib 
import email 

obj = imaplib.IMAP4_SSL('imap.gmail.com', 993) 
obj.login('username', 'password') 
obj.select('folder_name') 
resp, data = obj.uid('FETCH', ','.join(map(str,uidl_list)) , '(BODY.PEEK[HEADER.FIELDS (From Subject)] RFC822.SIZE)') 

注:這裏的uidl_list'是郵件ü希望其主題的UID名單。

相關問題