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实现的数据结构与算法之双端队列详解
Apr 22 Python
Python编程实现的图片识别功能示例
Aug 03 Python
python 自动去除空行的实例
Jul 24 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
Python后台开发Django的教程详解(启动)
Apr 08 Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 Python
pycharm的python_stubs问题
Apr 08 Python
python如何处理程序无法打开
Jun 16 Python
Python 如何查找特定类型文件
Aug 17 Python
python模拟点击在ios中实现的实例讲解
Nov 26 Python
python中requests库+xpath+lxml简单使用
Apr 29 Python
Django操作cookie的实现
May 26 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读取excel文件示例分享(更新修改excel)
2014/02/27 PHP
50个PHP程序性能优化的方法
2014/06/02 PHP
PHP定时更新程序设计思路分享
2014/06/10 PHP
PHP生成RSS文件类实例
2014/12/05 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
JavaScript DOM 学习第七章 表单的扩展
2010/02/19 Javascript
有关于JS辅助函数inherit()的问题
2013/04/07 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
AngularJS国际化详解及示例代码
2016/08/18 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
写一个移动端惯性滑动&回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
浅谈Python中的继承
2020/06/19 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
阿迪达斯俄罗斯官方商城:adidas俄罗斯
2017/03/08 全球购物
校园文明标语
2014/06/13 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
尊老爱亲美德少年事迹材料
2014/08/14 职场文书
师德师风个人整改措施
2014/10/27 职场文书
初婚初育证明范本
2014/11/24 职场文书
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js