博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
今天玩一下python得邮件解析吧,查看邮件内容小儿科,我们下载邮件的附件
阅读量:5064 次
发布时间:2019-06-12

本文共 2234 字,大约阅读时间需要 7 分钟。

直男,直接上代码。

自己看打印的内容

主要功能如下:

#如果邮件内容存在链接则返回链接,若不存在则直接下载邮件附件
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     #搜索未读邮件,打印未读邮件的UID15     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             pass54     #退出邮件55     imapObj.logout()56     #如果邮件内容存在链接则返回链接,若不存在则直接下载邮件附件57     return url58 59 getDowmlodUrl()
View Code

 

转载于:https://www.cnblogs.com/lelexiu/p/11187967.html

你可能感兴趣的文章
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
sqlite的坑
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>
【题解】[P4178 Tree]
查看>>
Jquery ui widget开发
查看>>
更改git仓库地址
查看>>
有标号DAG计数 [容斥原理 子集反演 组合数学 fft]
查看>>
Recipe 1.4. Reversing a String by Words or Characters
查看>>
Rule 1: Make Fewer HTTP Requests(Chapter 1 of High performance Web Sites)
查看>>
sql注入
查看>>
「破解」Xposed强
查看>>
src与href的区别
查看>>
ABAP工作区,内表,标题行的定义和区别
查看>>
《xxx重大需求征集系统的》可用性和可修改性战术分析
查看>>
Python 中 创建类方法为什么要加self
查看>>
关于indexOf的使用
查看>>
【转】JS生成 UUID的四种方法
查看>>
英语单词
查看>>
centos6.8下安装matlab2009(图片转帖)
查看>>