|
直男,直接上代碼。 自己看打印的內(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 |
|
|