电竞比分网-中国电竞赛事及体育赛事平台

分享

今天玩一下python得郵件解析吧,查看郵件內(nèi)容小兒科,我們下載郵件的附件

 印度阿三17 2019-07-15

直男,直接上代碼。

自己看打印的內(nèi)容

主要功能如下:

#如果郵件內(nèi)容存在鏈接則返回鏈接,若不存在則直接下載郵件附件
 1 import imapclient,re
 2 import pyzmail
 3 
 4 
 5 #提取郵件里面的鏈接
 6 def getDowmlodUrl():
 7     url = None
 8     #這里是騰訊企業(yè)郵箱,其他的自行百度
 9     imapObj = imapclient.IMAPClient('imap.exmail.qq.com',ssl=True)
10     #郵箱和密碼
11     imapObj.login('xxxx@xxx.com','xxxxxxx')
12     #默認收件箱
13     imapObj.select_folder('INBOX',readonly=True)
14     #搜索未讀郵件,打印未讀郵件的UID
15     UIDS = imapObj.search('UNSEEN')
16     print(UIDS)
17     #UIDS = imapObj.search('ALL')#搜索全部的郵件
18     if len(UIDS) >= 1:#存在未讀郵件
19         #獲得郵件內(nèi)容
20         rawMessage = imapObj.fetch(UIDS[0],[b'BODY[]'])
21         #選擇第一封未讀郵件
22         messageObj = pyzmail.PyzMessage.factory(rawMessage[UIDS[0]][b'BODY[]'])
23         #打印郵件信息,可以根據(jù)這些信息進行篩選
24         print(messageObj.get_subject())#郵件主題
25         print(messageObj.get_addresses('from'))#發(fā)件人
26         print(messageObj.get_addresses('to'))#收件人
27         print(messageObj.get_addresses('cc'))
28         print(messageObj.get_addresses('bcc'))
29 
30         #郵件內(nèi)容不為空時
31         if messageObj.html_part != None:
32             messageContent = messageObj.html_part.get_payload().decode(messageObj.html_part.charset)
33             #打印郵件內(nèi)容
34             print(type(messageContent),messageContent)
35             #提取郵件內(nèi)容里面的鏈接
36             pattern = re.compile(r'//[0-9A-Za-z./\\?\\=\\:] ')
37             m = re.search(pattern,messageContent)
38             print('m',m)
39             if m is not None:
40                 print('http:'   m.group(0))
41                 url = 'http:'   m.group(0)
42             #如果沒有則取提起郵件的附件
43             else:
44                 for part in messageObj.walk():
45                     # name = part.get_param('name')
46                     if part.get_filename() != None:
47                         # print(part,part.get_filename())
48                         with open(part.get_filename(), 'wb') as f:
49                             f.write(part.get_payload(decode=True))
50             #設置郵件已讀
51             imapObj.set_flags(rawMessage, b'\\Seen', silent=False)
52         else:
53             pass
54     #退出郵件
55     imapObj.logout()
56     #如果郵件內(nèi)容存在鏈接則返回鏈接,若不存在則直接下載郵件附件
57     return url
58 
59 getDowmlodUrl()
View Code

?

來源:https://www./content-1-329101.html

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多