今天玩一下python得邮件解析吧,查看邮件内容小儿科,我们下载邮件的附件
直男,直接上代码。
自己看打印的内容
主要功能如下:
#如果邮件内容存在链接则返回链接,若不存在则直接下载邮件附件
import imapclient,re
import pyzmail #提取邮件里面的链接
def getDowmlodUrl():
url = None
#这里是腾讯企业邮箱,其他的自行百度
imapObj = imapclient.IMAPClient('imap.exmail.qq.com',ssl=True)
#邮箱和密码
imapObj.login('xxxx@xxx.com','xxxxxxx')
#默认收件箱
imapObj.select_folder('INBOX',readonly=True)
#搜索未读邮件,打印未读邮件的UID
UIDS = imapObj.search('UNSEEN')
print(UIDS)
#UIDS = imapObj.search('ALL')#搜索全部的邮件
if len(UIDS) >= 1:#存在未读邮件
#获得邮件内容
rawMessage = imapObj.fetch(UIDS[0],[b'BODY[]'])
#选择第一封未读邮件
messageObj = pyzmail.PyzMessage.factory(rawMessage[UIDS[0]][b'BODY[]'])
#打印邮件信息,可以根据这些信息进行筛选
print(messageObj.get_subject())#邮件主题
print(messageObj.get_addresses('from'))#发件人
print(messageObj.get_addresses('to'))#收件人
print(messageObj.get_addresses('cc'))
print(messageObj.get_addresses('bcc')) #邮件内容不为空时
if messageObj.html_part != None:
messageContent = messageObj.html_part.get_payload().decode(messageObj.html_part.charset)
#打印邮件内容
print(type(messageContent),messageContent)
#提取邮件内容里面的链接
pattern = re.compile(r'//[0-9A-Za-z./\\?\\=\\:]+')
m = re.search(pattern,messageContent)
print('m',m)
if m is not None:
print('http:' + m.group(0))
url = 'http:' + m.group(0)
#如果没有则取提起邮件的附件
else:
for part in messageObj.walk():
# name = part.get_param('name')
if part.get_filename() != None:
# print(part,part.get_filename())
with open(part.get_filename(), 'wb') as f:
f.write(part.get_payload(decode=True))
#设置邮件已读
imapObj.set_flags(rawMessage, b'\\Seen', silent=False)
else:
pass
#退出邮件
imapObj.logout()
#如果邮件内容存在链接则返回链接,若不存在则直接下载邮件附件
return url getDowmlodUrl()
今天玩一下python得邮件解析吧,查看邮件内容小儿科,我们下载邮件的附件的更多相关文章
- python学习(解析python官网会议安排)
在学习python的过程中,做练习,解析https://www.python.org/events/python-events/ HTML文件,输出Python官网发布的会议时间.名称和地点. 对ht ...
- python中html解析-Beautiful Soup
1. Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyt ...
- python爬虫数据解析之BeautifulSoup
BeautifulSoup是一个可以从HTML或者XML文件中提取数据的python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. BeautfulSoup是python爬虫三 ...
- Python迭代和解析(1):列表解析
解析.迭代和生成系列文章:https://www.cnblogs.com/f-ck-need-u/p/9832640.html Python中的解析 Python支持各种解析(comprehensio ...
- python命令行解析模块--argparse
python命令行解析模块--argparse 目录 简介 详解ArgumentParser方法 详解add_argument方法 参考文档: https://www.jianshu.com/p/aa ...
- python 关键字yield解析
python 关键字yield解析 yield 的作用就是把一个函数变成一个 generator,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 generator.y ...
- Python之XML解析详解
什么是XML? XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这 ...
- 从零单排之玩转Python安全编程(II)
转自:http://www.secpulse.com/archives/35893.html 都说Python大法好,作为一名合格的安全从业人员,不会几门脚本语言都不好意思说自己是从事安全行业的. 而 ...
- python接口自动化(二十九)--html测试报告通过邮件发出去——上(详解)
简介 前边几篇,已经教小伙伴们掌握了如何生成HTML的测试报告,那么生成测试报告,我们也不能放在那里不管了,这样即使你报告在漂亮,领导也看不到.因此如果想向领导汇报工作,不仅需要提供更直观的测试报告. ...
随机推荐
- 安装和使用redis
我现在只是在window上使用redis在其他平台上暂时没有操作过,如果你有其他好的意见欢迎提出来! 安装redis具体可查看:http://www.runoob.com/redis/redis-in ...
- Auth认证中的think_auth_rule type字段干嘛用的?
昨晚认真研究了一下这个类,设计的很巧妙,但是你说的这个字段,我认为应该是作者想加功能但还没写,在session判断的地方可以看到,type这个字段实际是对应的 1-实时验证,2登陆验证 ,显然,这个字 ...
- 记一次virtualbox和夜神模拟器冲突的问题
今天装了夜神模拟器之后发现vbox打不开了,百度了一堆都说要什么重装系统啥的,我这边提示的是 “创建失败(被召者 RC: REGDB_E_CLASSNOTREG (0x80040154))” 先是用管 ...
- Redis持久化存储(二)
redis多实例介绍 接上一篇redis.创建数据存放的目录 vim redis.conf +187 dir /application/data/ 重新启动 mkdir /application/da ...
- Spring Boot 之Spring data JPA简介
文章目录 添加依赖 添加entity bean 创建 Dao Spring Data Configuration 测试 Spring Boot 之Spring data JPA简介 JPA的全称是Ja ...
- weblogic创建域
一.webLogic服务域创建 https://blog.csdn.net/github_38922197/article/details/75097320
- [转]探索 Android 内存优化方法
前言 这篇文章的内容是我回顾和再学习 Android 内存优化的过程中整理出来的,整理的目的是让我自己对 Android 内存优化相关知识的认识更全面一些,分享的目的是希望大家也能从这些知识中得到一些 ...
- java 之 继承 super关键籽 this关键字 final关键字
继承 语法: 使用 extends 来继承 class子类 extends父类{ 子类属性 子类方法 } 继承的特点: 1.子类会把父类所有的属性和方法继承下来,final修饰的类是不可以被继承 ...
- java 之 构造器 static关键字
构造器 特点: 方法名和类名一至,没有void没有返回,无参数的称为无参构造器,有参数的称为有参构造器 语法: public 类名 {数据类型 参数名} 目的:创建对象 注意:如果类中没有带有参数的 ...
- MaxCompute Studio提升UDF和MapReduce开发体验
原文链接:http://click.aliyun.com/m/13990/ UDF全称User Defined Function,即用户自定义函数.MaxCompute提供了很多内建函数来满足用户的计 ...