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对字符串实现去重操作的方法示例
Aug 11 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
Python unittest模块用法实例分析
May 25 Python
python和shell获取文本内容的方法
Jun 05 Python
python使用turtle绘制国际象棋棋盘
May 23 Python
django 2.2和mysql使用的常见问题
Jul 18 Python
django解决订单并发问题【推荐】
Jul 31 Python
tensorflow 报错unitialized value的解决方法
Feb 06 Python
Python基于os.environ从windows获取环境变量
Jun 09 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
Aug 07 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 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日历[测试通过]
2008/03/27 PHP
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
CentOS安装php v8js教程
2015/02/26 PHP
php自定义hash函数实例
2015/05/05 PHP
PHP文件操作方法汇总
2015/07/01 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
一个XML格式数据转换为图表的例子
2010/02/09 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
angular.js分页代码的实例
2016/07/27 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
书单|人生苦短,你还不用python!
2017/12/29 Python
儿童学习python的一些小技巧
2018/05/27 Python
Django中的forms组件实例详解
2018/11/08 Python
Python线程之定位与销毁的实现
2019/02/17 Python
Python高级property属性用法实例分析
2019/11/19 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
用Python做一个久坐提醒小助手的示例代码
2020/02/10 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
惠普香港官方商店:HP香港
2019/04/30 全球购物
C#中的验证控件有几种
2014/03/08 面试题
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
校长个人总结
2015/03/03 职场文书
Python实现为PDF去除水印的示例代码
2022/04/03 Python
python小型的音频操作库mp3Play
2022/04/24 Python
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js