python实现批量解析邮件并下载附件


Posted in Python onJune 19, 2018

python中的email模块可以方便的解析邮件,先上代码

#-*- encoding: gb2312 -*-
import os
import email

def mail_to_text(mailname,datapath,index):
#由于批处理的邮件包含的附件名称相同,这里传入一个index作为区别符
  fp=open(mailname,"r")
  msg=email.message_from_file(fp)

  for par in msg.walk():
    if not par.is_multipart():
      name=par.get_param("name") #获取附件名

      if name:
        h=email.Header.Header(name)
        dh=email.Header.decode_header(h)
        fname = dh[0][0]

        data=par.get_payload(decode=True)

        try:
          f=open(fname,'wb')
        except:
          data_name=str(h).replace('/','_') #附件数据
          f=open(datapath+'\\'+str(index)+data_name,'wb')
        f.write(data)
        f.close()

if __name__=='__main__':
  dir="C:\\Users\\admin\\Desktop\\srcData\\"  #邮件存放路径
  Dir=unicode(dir,"utf8")
  datapath="C:\\Users\\admin\\Desktop\\destData"  #附件存放路径
  DataPath=unicode(datapath,"utf8")
  count=0


  for filename in os.listdir(dir):
    print filename
    filename=unicode(dir+filename,"utf8")  #由于邮件名出现中文,所以统一用utf8编码,便于读取
    print filename
    count+=1
    mail_to_text(filename,datapath,count)

注:邮件名称中出现中文时需特别小心

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python函数参数*args**kwargs用法实例
Dec 04 Python
六个窍门助你提高Python运行效率
Jun 09 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
浅谈python配置与使用OpenCV踩的一些坑
Apr 02 Python
利用Python求阴影部分的面积实例代码
Dec 05 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
python解析yaml文件过程详解
Aug 30 Python
Python实现随机取一个矩阵数组的某几行
Nov 26 Python
python飞机大战pygame游戏之敌机出场实现方法详解
Dec 17 Python
python opencv如何实现图片绘制
Jan 19 Python
python 解决mysql where in 对列表(list,,array)问题
Jun 06 Python
Python数据可视化常用4大绘图库原理详解
Oct 23 Python
Python3使用SMTP发送带附件邮件
Jun 16 #Python
Python3使用turtle绘制超立方体图形示例
Jun 19 #Python
python3使用SMTP发送HTML格式邮件
Jun 19 #Python
python3.X 抓取火车票信息【修正版】
Jun 19 #Python
python3使用SMTP发送简单文本邮件
Jun 19 #Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 #Python
python3第三方爬虫库BeautifulSoup4安装教程
Jun 19 #Python
You might like
PHP的autoload机制的实现解析
2012/09/15 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
js带前后翻页的图片切换效果代码分享
2015/09/08 Javascript
通用无限极下拉菜单的实现代码
2016/05/31 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
vue中echarts引入中国地图的案例
2020/07/28 Javascript
[01:38]完美世界高校联赛决赛花絮
2018/12/02 DOTA
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
Python3实现飞机大战游戏
2020/04/24 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
Python创建临时文件和文件夹
2020/08/05 Python
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
个人求职简历的自我评价
2013/10/19 职场文书
学生处主任岗位职责
2013/12/01 职场文书
房屋转让协议书
2014/04/11 职场文书
校车安全责任书
2014/08/25 职场文书
庆六一宣传标语
2014/10/08 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书
Python中with上下文管理协议的作用及用法
2022/03/18 Python