几行 Python 代码实现邮件解析,超赞~
作者 | Yunlor
来源 | CSDN博客
前言
如何通过python实现邮件解析?邮件的格式十分复杂,主要是mime协议,本文主要是从实现出发,具体原理可以自行研究。
一、安装
通过mailgun开源的Flanker库实现邮件解析。该库包含了邮件地址解析和邮件mime格式解析。
输入以下命令:
pip install flanker
二、代码实现
1.邮件头
def emlAnayalyse(path):with open(path, 'rb') as fhdl:raw_email = fhdl.read()eml = mime.from_string(raw_email)subject = eml.subjecteml_header_from = eml.headers.get('From')eml_header_to = eml.headers.get('To')eml_header_cc=eml.headers.get('Cc')eml_time = eml.headers.get('Date')# get_annex(eml, '1')eml_attachs=attachEml1(eml)eml_body = contentEml(eml)f = HTMLFilter()f.feed(eml_body)print(f.text)def main():path='邮件名.eml'emlAnayalyse(path)if __name__ == "__main__":main()
其中eml.header包含发送人,收件人,抄送人,时间等头信息。
2.邮件正文
# 邮件正文
def contentEml(eml):# 判断是否为单部分if eml.content_type.is_singlepart():eml_body = eml.bodyelse:eml_body = ''for part in eml.parts:# 判断是否是多部分if part.content_type.is_multipart():eml_body = contentEml(part)else:if part.content_type.main == 'text':eml_body = part.bodyreturn eml_body
通过回调函数,取出邮件正文部分
3.邮件附件
def attachEml1(eml):for part in eml.parts:if not part.content_type.is_multipart(): name = part.detected_file_namewith open(name, 'wb') as annex:annex.write(part.body)
通过content_type.is_multipart()判断是否为附件,将其保存下来。
总结
邮件解析基本内容就介绍完了,有需要的小伙伴可以多多交流!!!
往
期
回
顾
技术
100行python代码制作鞭炮
资讯
大型模型语言能够理解吗?
技术
31个好用的Python字符串方法
资讯
游戏圈地震级消息,微软收购动视暴雪
分享
点收藏
点点赞
点在看
几行 Python 代码实现邮件解析,超赞~相关推荐
- python做出来的小程序、可以在win10上面运行_超详细,手把手教你用20行Python代码制作飞花令小程序!...
原标题:超详细,手把手教你用20行Python代码制作飞花令小程序! 来源:早起Python 作者:陈熹 飞花令是古时候人们经常玩一种"行酒令"的游戏,是中国古代酒令之一,属雅令. ...
- 详解200行Python代码实现控制台版2048【总有一款坑适合你】【超详细】
跟着实验楼学习了2048的Python实现,先丢个地址 200行Python代码实现2048 我接触Python时间不长,只了解一些基本的语法和容器,在学习的过程中遇到不少问题,这里做一个记录. cu ...
- 7行Python代码,搭建可以识花的机器学习App|视频教程
你想学Python,却不知如何着手,那你需要一种更加有趣的学习方式. Siraj Raval是一位人工智能领域的编程高手,毕业于哥伦比亚大学,曾任职于 Twilio 和 Meetup,他通过制作教程类 ...
- 服不服?40行Python代码,实现卷积特征可视化
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|深度学习这件小事 卷积神经网络(CNN)变革了计算机视觉 ...
- 20行 Python 代码爬取王者荣耀全英雄皮肤 | 原力计划
作者 | wangweijun 责编 | Elle 出品 | CSDN 博客 引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了.我们今天的重点是爬取王 ...
- python ray定时_使用 Ray 用 15 行 Python 代码实现一个参数服务器
使用 Ray 用 15 行 Python 代码实现一个参数服务器 参数服务器是很多机器学习应用的核心部分.其核心作用是存放机器学习模型的参数(如,神经网络的权重)和提供服务将参数传给客户端(客户端通常 ...
- python爬虫教程:如何用40行Python代码实现天气预报和每日鸡汤推送功能
这篇文章主要介绍了通过40行Python代码实现天气预报和每日鸡汤推送功能,代码简单易懂,非常不错具有一定的参考借鉴价值 ,需要的朋友可以参考下 情人节刚过去几天,但是这和我们程序员有什么关系呢,对我 ...
- python50行小游戏_50行python代码实现的贪吃蛇小游戏
50行python代码实现的贪吃蛇小游戏 发布于 2014-09-01 21:26:24 | 1337 次阅读 | 评论: 1 | 来源: 网友投递 Python编程语言Python 是一种面向对象. ...
- 13行Python代码画美国疫情地图!美国现在可怕哇!
截至3月28日,美国累计新冠肺炎确诊病例已经超过12万例,累计死亡病例超两千例.美国政府已宣布17个州和地区为应对新冠肺炎疫情"灾难状态".美国疾控中心28日还对纽约州等疫情较严重 ...
最新文章
- Kotlin中var和val的区别
- 【C#语言规范】从FxCop归纳出来的一些规范建议
- WordPress环境配置与安装
- String转int,int转String
- 洛谷 P1509 找啊找啊找GF(复习二维费用背包)
- .xmind用什么软件打开_xps用什么软件打开(xps文件打开方法)
- 学习 opencv---(4) 分离颜色通道 多通道混合
- 华为交换机VLAN配置多个端口详细步骤
- Python安装读取Excel的xlrd模块步骤
- html css print打印,打印样式
- 2022 七校联合NewStarCTF 公开赛赛道 WEEK3|MISC
- 模拟电子技术(八)功率放大电路
- HDFS成员的工作机制
- python通过四个点求球心及球心半径
- 模仿新浪微博雷达搜索动画效果
- 手势识别系统的发展前景
- uniapp 微信小程序 上传图片到服务器
- 腾讯云轻量数据库服务简单测评
- ATmega8熔丝设置
- 【听译大师说话】python 创始人访谈录 1: 关于 django 和 ruby