今天玩一下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的测试报告,那么生成测试报告,我们也不能放在那里不管了,这样即使你报告在漂亮,领导也看不到.因此如果想向领导汇报工作,不仅需要提供更直观的测试报告. ...
随机推荐
- Linux下nginx自启动配置
1.在linux系统的/etc/init.d/目录下创建nginx文件 vim /etc/init.d/nginx 在脚本中添加一下命令(内容主要参考官方文档) #!/bin/sh # # nginx ...
- 被折磨致死的heroku——herku部署
最近一直在弄heroku部署上线,但是因为中国墙和英语问题,一直弄不好,,很是烦躁,所有暂时先放弃了,但是因为查询了一些资料,有些文档链接有必要放到下面,方便各位和自己查看: heroku官方网站: ...
- 【山外笔记-数据库】Memcached详解教程
本文打印版文档下载地址 [山外笔记-数据库]Memcached详解教程-打印版.pdf 一.Memcached数据库概述 1.Memcached简介 (1)Memcached是一个自由开源的,高性能, ...
- SpringCloud(四)学习笔记之Feign
Feign是一个声明式的Web服务客户端,可帮助我们更加便捷.优雅地调用HTTP API Feign可以与Eureka和Ribbon组合使用以支持负载均衡 一.构建Eureka Server [基于第 ...
- 关于赋值的Java面试题
面试题:(1) short s = 1:s = s + 1;(2) short s = 1;s += 1;问:上面两个代码有没有问题,如果有,哪里有问题? 答:(1) 第一个是错的,会报错损失精度,因 ...
- 必应每日图片api
https://cn.bing.com/HPImageArchive.aspx?format=xml&cc=jp&idx=0&n=1 format = 'xml' | 'j ...
- Windows API 中 OVERLAPPED 结构体 初始化
出处:https://github.com/microsoft/Windows-classic-samples/blob/1d363ff4bd17d8e20415b92e2ee989d615cc0d9 ...
- linux sort 命令实用手册
Linux 中的sort 命令是一个很实用的工具,用于对文本内容以行为单位进行ASCII 码排序,默认按照升序进行排序(当然也可以按照降序). sort 命令的格式如下: sort `参数` `文件名 ...
- 我做了一个 HTML 可视化编辑工具,有前途吗?
疫情在家的这段时间,我做了一个 HTML 可视化编辑工具,做的时候信心满满,差不多完成了,现在反而不如以前信心足了,这玩意有用吗?代码地址: https://github.com/vularsoft/ ...
- Week-1 linux命令行重点整理
①仅对当前用户: ~/.bashrc ②对所有用户有效: /etc/bashrc screen命令:创建新screen会话screen –S [SESSION]加入screen会话screen –x ...