作者 | 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 代码实现邮件解析,超赞~相关推荐

  1. python做出来的小程序、可以在win10上面运行_超详细,手把手教你用20行Python代码制作飞花令小程序!...

    原标题:超详细,手把手教你用20行Python代码制作飞花令小程序! 来源:早起Python 作者:陈熹 飞花令是古时候人们经常玩一种"行酒令"的游戏,是中国古代酒令之一,属雅令. ...

  2. 详解200行Python代码实现控制台版2048【总有一款坑适合你】【超详细】

    跟着实验楼学习了2048的Python实现,先丢个地址 200行Python代码实现2048 我接触Python时间不长,只了解一些基本的语法和容器,在学习的过程中遇到不少问题,这里做一个记录. cu ...

  3. 7行Python代码,搭建可以识花的机器学习App|视频教程

    你想学Python,却不知如何着手,那你需要一种更加有趣的学习方式. Siraj Raval是一位人工智能领域的编程高手,毕业于哥伦比亚大学,曾任职于 Twilio 和 Meetup,他通过制作教程类 ...

  4. 服不服?40行Python代码,实现卷积特征可视化

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|深度学习这件小事 卷积神经网络(CNN)变革了计算机视觉 ...

  5. 20行 Python 代码爬取王者荣耀全英雄皮肤 | 原力计划

    作者 | wangweijun 责编 | Elle 出品 | CSDN 博客 引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了.我们今天的重点是爬取王 ...

  6. python ray定时_使用 Ray 用 15 行 Python 代码实现一个参数服务器

    使用 Ray 用 15 行 Python 代码实现一个参数服务器 参数服务器是很多机器学习应用的核心部分.其核心作用是存放机器学习模型的参数(如,神经网络的权重)和提供服务将参数传给客户端(客户端通常 ...

  7. python爬虫教程:如何用40行Python代码实现天气预报和每日鸡汤推送功能

    这篇文章主要介绍了通过40行Python代码实现天气预报和每日鸡汤推送功能,代码简单易懂,非常不错具有一定的参考借鉴价值 ,需要的朋友可以参考下 情人节刚过去几天,但是这和我们程序员有什么关系呢,对我 ...

  8. python50行小游戏_50行python代码实现的贪吃蛇小游戏

    50行python代码实现的贪吃蛇小游戏 发布于 2014-09-01 21:26:24 | 1337 次阅读 | 评论: 1 | 来源: 网友投递 Python编程语言Python 是一种面向对象. ...

  9. 13行Python代码画美国疫情地图!美国现在可怕哇!

    截至3月28日,美国累计新冠肺炎确诊病例已经超过12万例,累计死亡病例超两千例.美国政府已宣布17个州和地区为应对新冠肺炎疫情"灾难状态".美国疾控中心28日还对纽约州等疫情较严重 ...

最新文章

  1. Kotlin中var和val的区别
  2. 【C#语言规范】从FxCop归纳出来的一些规范建议
  3. WordPress环境配置与安装
  4. String转int,int转String
  5. 洛谷 P1509 找啊找啊找GF(复习二维费用背包)
  6. .xmind用什么软件打开_xps用什么软件打开(xps文件打开方法)
  7. 学习 opencv---(4) 分离颜色通道 多通道混合
  8. 华为交换机VLAN配置多个端口详细步骤
  9. Python安装读取Excel的xlrd模块步骤
  10. html css print打印,打印样式
  11. 2022 七校联合NewStarCTF 公开赛赛道 WEEK3|MISC
  12. 模拟电子技术(八)功率放大电路
  13. HDFS成员的工作机制
  14. python通过四个点求球心及球心半径
  15. 模仿新浪微博雷达搜索动画效果
  16. 手势识别系统的发展前景
  17. uniapp 微信小程序 上传图片到服务器
  18. 腾讯云轻量数据库服务简单测评
  19. ATmega8熔丝设置
  20. 【听译大师说话】python 创始人访谈录 1: 关于 django 和 ruby

热门文章

  1. 什么是Hive?它有哪些特点和特性?
  2. UI设计培训怎么选择就业方向
  3. django框架的基础知识点《贰》
  4. 配置linux-Fedora系统下iptables防火墙
  5. PI校正环节的程序实现推导过程
  6. 关于VS2012如何安装Windows Phone Toolkit
  7. 无法访问D盘,执行页内操作时的错误
  8. 荣之联“云桥OneBridge”让IT运维事半功倍
  9. 文件时间信息在测试中的应用
  10. 使用postMan测试erp系统登录接口