簡體   English   中英

Python在imap電子郵件中搜索字符串

[英]Python search imap email for a string

python的新手,遇到一些麻煩。
我正在通過imap從gmail取回電子郵件(具有來自https://yuji.wordpress.com/2011/06/22/python-imaplib-imap-example-with-gmail/的入門代碼),並且想要搜索特定的電子郵件(我能夠提取)的特定字符串。 像這樣

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'

並且總是將完成設置為否。 這是電子郵件的輸出(電子郵件的正文部分)

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,但似乎無法弄清楚如何正確解析電子郵件。

謝謝!

上面的文本是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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM