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 相关文章推荐
有关wxpython pyqt内存占用问题分析
Jun 09 Python
Python判断操作系统类型代码分享
Nov 22 Python
python MySQLdb Windows下安装教程及问题解决方法
May 09 Python
Python实例一个类背后发生了什么
Feb 09 Python
解决pycharm无法调用pip安装的包问题
May 18 Python
python实现桌面壁纸切换功能
Jan 21 Python
Pytorch之contiguous的用法
Dec 31 Python
Python3 元组tuple入门基础
Feb 09 Python
django orm模块中的 is_delete用法
May 20 Python
python实现126邮箱发送邮件
May 20 Python
Python的历史与优缺点整理
May 26 Python
Python如何创建装饰器时保留函数元信息
Aug 07 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/12/05 PHP
PHP 编程安全性小结
2010/01/08 PHP
zf框架的Filter过滤器使用示例
2014/03/13 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
10个实用的脚本代码工具
2010/05/04 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
详解Nodejs 通过 fs.createWriteStream 保存文件
2017/10/10 NodeJs
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
对vue中methods互相调用的方法详解
2018/08/30 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
Python中返回字典键的值的values()方法使用
2015/05/22 Python
Python减少循环层次和缩进的技巧分析
2016/03/15 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
使用python语言,比较两个字符串是否相同的实例
2018/06/29 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
python中if及if-else如何使用
2020/06/02 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
实用的简历自我评价
2014/03/06 职场文书
2015年行政工作总结范文
2015/04/09 职场文书
风之谷观后感
2015/06/11 职场文书
一封真诚的自荐信帮你赢得机会
2019/05/07 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL