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创建关联数组(字典)的方法
May 04 Python
完美解决python遍历删除字典里值为空的元素报错问题
Sep 11 Python
python实现FTP服务器服务的方法
Apr 11 Python
python中安装模块包版本冲突问题的解决
May 02 Python
python中判断文件编码的chardet(实例讲解)
Dec 21 Python
Python多线程编程之多线程加锁操作示例
Sep 06 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
Python设计模式之职责链模式原理与用法实例分析
Jan 11 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
Apr 15 Python
使用 Django Highcharts 实现数据可视化过程解析
Jul 31 Python
Python中list的交、并、差集获取方法示例
Aug 01 Python
opencv转换颜色空间更改图片背景
Aug 20 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类
2006/10/09 PHP
php上的memcache和memcached两个pecl库
2010/03/29 PHP
php传值方式和ajax的验证功能
2017/03/27 PHP
php压缩文件夹最新版
2018/07/18 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
Javascript 二维数组
2009/11/26 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
js无提示关闭浏览器窗口的两种方法分析
2016/11/06 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
python:socket传输大文件示例
2017/01/18 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
wxPython之解决闪烁的问题
2018/01/15 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
美国和加拿大房车出售在线分类广告:RVT.com
2018/04/23 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
揭牌仪式主持词
2014/03/19 职场文书
食品安全宣传标语
2014/06/07 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
永不妥协观后感
2015/06/10 职场文书
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android
bat批处理之字符串操作的实现
2022/03/16 Python