标签:小儿科 get python imapObj part 邮件 print messageObj
直男,直接上代码。
自己看打印的内容
主要功能如下:
#如果邮件内容存在链接则返回链接,若不存在则直接下载邮件附件
1 import imapclient,re 2 import pyzmail 3 4 5 #提取邮件里面的链接 6 def getDowmlodUrl(): 7 url = None 8 #这里是腾讯企业邮箱,其他的自行百度 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 #获得邮件内容 20 rawMessage = imapObj.fetch(UIDS[0],[b'BODY[]']) 21 #选择第一封未读邮件 22 messageObj = pyzmail.PyzMessage.factory(rawMessage[UIDS[0]][b'BODY[]']) 23 #打印邮件信息,可以根据这些信息进行筛选 24 print(messageObj.get_subject())#邮件主题 25 print(messageObj.get_addresses('from'))#发件人 26 print(messageObj.get_addresses('to'))#收件人 27 print(messageObj.get_addresses('cc')) 28 print(messageObj.get_addresses('bcc')) 29 30 #邮件内容不为空时 31 if messageObj.html_part != None: 32 messageContent = messageObj.html_part.get_payload().decode(messageObj.html_part.charset) 33 #打印邮件内容 34 print(type(messageContent),messageContent) 35 #提取邮件内容里面的链接 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 #如果邮件内容存在链接则返回链接,若不存在则直接下载邮件附件 57 return url 58 59 getDowmlodUrl()View Code
标签:小儿科,get,python,imapObj,part,邮件,print,messageObj 来源: https://www.cnblogs.com/lelexiu/p/11187967.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。