2016-03-04 74 views
2

新的Python,有一些麻煩過去的這一點。
上午通過IMAP取回從Gmail電子郵件(從https://yuji.wordpress.com/2011/06/22/python-imaplib-imap-example-with-gmail/啓動代碼)和要搜索一個特定的電子郵件(這我能提取)爲特定的字符串。像這樣的東西Python的搜索IMAP電子郵件的字符串

ids = data[0] 
id_list = ids.split() 
ids = data[0] 
id_list = ids.split() 
latest_email_id = id_list[-1] 
result, data = mail.fetch(latest_email_id, "(RFC822)") 
raw_email = data[0][1] 

def search_raw(): 
    if 'gave' in raw_email: 
     done = 'yes' 
    else: 
     done = 'no' 

並且它總是設置爲no。下面是輸出的電子郵件(用於電子郵件的正文部分)

Content-Type multipart/related;boundary=1_56D8EAE1_29AD7EA0;type="text/html" 
--1_56D8EAE1_29AD7EA0 
Content-Type text/html;charset="UTF-8" 
Content-Transfer-Encoding base64 

PEhUTUw+CiAgICAgICAgPEhFQUQ+CiAgICAgICAgICAgICAgICA8VElUTEU+PC9USVRMRT4KICAg 
ICAgICA8L0hFQUQ+CiAgICAgICAgPEJPRFk+CiAgICAgICAgICAgICAgICA8UCBhbGlnbj0ibGVm 
dCI+PEZPTlQgZmFjZT0iVmVyZGFuYSIgY29sb3I9IiNjYzAwMDAiIHNpemU9IjIiPlNlbnQgZnJv 
bSBteSBtb2JpbGUuCiAgICAgICAgICAgICAgICA8QlI+X19fX19fX19fX19fX19fX19fX19fX19f 
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzwvRk9OVD48L1A+CgogICAgICAg 
ICAgICAgICAgPFBSRT4KR2F2ZQoKPC9QUkU+CiAgICAgICAgPC9CT0RZPgo8L0hUTUw+Cg== 
--1_56D8EAE1_29AD7EA0-- 

我知道這個問題是HTML,但似乎無法弄清楚如何正確地解析電子郵件。

謝謝!

+0

什麼是電子郵件的輸出類型?它是JSON或字符串或類似的東西? –

回答

0

上面的文本是base64編碼。 Python有一個名爲base64的模塊,可以讓你解碼它。

import base64 
import re 


def has_gave(raw_email): 
    email_body = base64.b64decode(raw_email) 
    match = re.search(r'.*gave.*', email_body , re.IGNORECASE) 
    if match: 
     done = 'yes' 
     print 'match found for word ', match.group() 
    else: 
     done = 'no' 
     print 'no match found' 

    return done 
相關問題