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正则分组的应用
Nov 10 Python
python处理json数据中的中文
Mar 06 Python
简单谈谈python中的lambda表达式
Jan 19 Python
python logging日志模块以及多进程日志详解
Apr 18 Python
基于Python中求和函数sum的用法详解
Jun 28 Python
python 定时器,轮询定时器的实例
Feb 20 Python
python tkinter库实现气泡屏保和锁屏
Jul 29 Python
python下PyGame的下载与安装过程及遇到问题
Aug 04 Python
Python Django框架防御CSRF攻击的方法分析
Oct 18 Python
Python Numpy库常见用法入门教程
Jan 16 Python
将自己的数据集制作成TFRecord格式教程
Feb 17 Python
Python 避免字典和元组的多重嵌套问题
Jul 15 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中adodbzip类实例
2014/12/08 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
PHP输出日历表代码实例
2015/03/27 PHP
简单的自定义php模板引擎
2016/08/26 PHP
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
juqery 学习之五 文档处理 插入
2011/02/11 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
RxJS的入门指引和初步应用
2019/06/15 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
浅谈Python基础之I/O模型
2017/05/11 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
Python os模块常用方法和属性总结
2020/02/20 Python
Python的历史与优缺点整理
2020/05/26 Python
物业管理毕业生个人的求职信
2013/11/30 职场文书
中学教师请假制度
2014/02/03 职场文书
授权委托书
2014/07/31 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2014年生产部工作总结
2014/12/17 职场文书
闪闪的红星观后感
2015/06/08 职场文书