ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

今天玩一下python得邮件解析吧,查看邮件内容小儿科,我们下载邮件的附件

2019-07-15 11:57:22  阅读:296  来源: 互联网

标签:小儿科 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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有