簡體   English   中英

僅使用python中的imap解析電子郵件

[英]Parsing e-mail only with imap in python

conn = imaplib.IMAP4_SSL("imap.gmail.com", 993)
conn.login("login", "pass")
conn.select()
typ, data = conn.search(None, 'ALL')
z = open("email.txt", "a")

for num in data[0].split():
    typ, msg_data = conn.fetch(num, '(BODY[HEADER.FIELDS (SUBJECT FROM)])')
    for response_part in msg_data:
        if isinstance(response_part, tuple):
            msg = email.message_from_string(response_part[1])
            subject = msg['from']
            z.write("%s\n" % subject) 
            print(subject)

    typ, response = conn.store(num, '+FLAGS', r'(\Seen)')
finally:
try:
    conn.close()
except:
    pass
conn.logout()

我只需要標題中的FROM:部分。 也不全名。 我現在以我希望數據為email@email.com的方式,以“姓氏名字”的電子郵件地址返回數據

您需要的是envelope數據項,而不是body.peek[header.fields (...)] 當您請求envelope ,服務器會進行大量解析,並為您提供From,Subject等信息。 對於“發件人”,您將獲得一個元組列表,每個元組可能看起來像這樣:(“ Google Play” NIL“ googleplay-noreply”“ google.com”)。 第一個是您不關心的名稱,第二個僅具有歷史意義,第三個和第四個是您想要的名稱。

暫無
暫無

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

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