python实现批量解析邮件并下载附件
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登录pop3邮件服务器接收邮件的方法
本文实例讲述了python登录pop3邮件服务器接收邮件的方法.分享给大家供大家参考.具体实现方法如下: import poplib, string PopServerName = "mail.yourserver.com" PopServer = poplib.POP3(PopServerName) print PopServer.getwelcome() PopServer.user('yourName') PopServer.pass_('yourPass') r, items,
-
python实现下载pop3邮件保存到本地
利用python进行unix管理一书中有一个登陆下载邮箱的脚本,实练了下还不错,对于邮箱备份来说还是比较快捷的,但是其命名方式是以编号和 文件大小来命名的,不方便阅读,于是进行了改进修改为发件人邮件地址命名,可能由于跨度时间较长,邮件排版有改变,有些邮件获取发件人的时候不能正确匹配. 1.命名方式是以编号和 文件大小来命名 #!/usr/bin/env python #-*- coding: utf-8 -*- #filename:receive_pop3_email_download.py i
-
python+POP3实现批量下载邮件附件
最近新开学,接到了给老板的本科课程当助教的工作,百十来号人一学期下来得有四五次作业发进邮箱里,需要我来统计打分,想想挨个点进去下载附件的过程就头大,于是萌生了写个脚本来统计作业的想法. 其实python里收发邮件都有很方便的包,合理使用就好,可以解决绝大多数的邮件收发任务.但是这个脚本写下来还是花了不少时间,其中最大的一部分时间是花在了python的编码问题上,python2和python3的编码预设有些许的不一样,在python3中又取消了unicode这个方法,这就导致很多在python2中
-
python实现批量解析邮件并下载附件
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
-
如何使用Python+ChatGPT批量生成论文
目录 用Python+ChatGPT批量生成论文概述 下载论文 pdf转文本 用GPT-3生成概述 输出概述 集成测试 总结 用Python+ChatGPT批量生成论文概述 做算法研究离不开阅读大量论文.从海量论文中找到需要的论文往往耗费算法团队不少的精力. ChatGPT官方例子中有一个“TL;DR”摘要生成,非常适合生成论文摘要. 于是我用python+GPT-3 API开发了一个工具,可以直接从arxiv地址生成论文概述.实现步骤如下: 下载论文 第一步,我们要先拿到论文正文. 从arxi
-
详解python实现读取邮件数据并下载附件的实例
详解python实现读取邮件数据并下载附件的实例 实现结果图: 实现代码: #!/usr/bin/python2.7 # _*_ coding: utf-8 _*_ """ @Author: MarkLiu """ import poplib import email from email.parser import Parser from email.header import decode_header from email.utils im
-
Python实现邮件自动下载的示例详解
开始码代码之前,我们先来了解一下三种邮件服务协议: 1.SMTP协议 SMTP(Simple Mail Transfer Protocol),即简单邮件传输协议.相当于中转站,将邮件发送到客户端. 2.POP3协议 POP3(Post Office Protocol 3),即邮局协议的第3个版本,是电子邮件的第一个离线协议标准.该协议把邮件下载到本地计算机,不与服务器同步,缺点是更易丢失邮件或多次下载相同的邮件. 3.IMAP协议 IMAP(Internet Mail Access Protoc
-
Python实现批量下载文件
Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_all() from gevent.pool import Pool import requests import sys import os def download(url): chrome = 'Mozilla/5.0 (X11; Linux i86_64) AppleWebKit/537.36
-
Python实现批量下载图片的方法
本文实例讲述了Python实现批量下载图片的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python #-*-coding:utf-8-*-' #Filename:download_file.py import os,sys import re import urllib import urllib2 base_url = 'xxx' array_url = list() pic_url = list() inner_url = list() def get_a
-
python实现批量下载新浪博客的方法
本文实例讲述了python实现批量下载新浪博客的方法.分享给大家供大家参考.具体实现方法如下: # coding=utf-8 import urllib2 import sys, os import re import string from BeautifulSoup import BeautifulSoup def encode(s): return s.decode('utf-8').encode(sys.stdout.encoding, 'ignore') def getHTML(url
-
python爬虫 批量下载zabbix文档代码实例
这篇文章主要介绍了python爬虫 批量下载zabbix文档代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 # -*- coding: UTF-8 -*- import requests,re,time url = 'https://www.zabbix.com/documentation/3.4/zh/manual' base_url = 'https://www.zabbix.com/documentation/3.4/' seco
-
python redis 批量设置过期key过程解析
这篇文章主要介绍了python redis 批量设置过期key过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在使用 Redis.Codis 时,我们经常需要做一些批量操作,通过连接数据库批量对 key 进行操作: 关于未过期: 1.常有大批量的key未设置过期,导致内存一直暴增 2.rd需求 扫描出这些key,rd自己处理过期(一般dba不介入数据的修改) 3.dba 批量设置过期时间,(一般测试可以直接批量设置,线上谨慎操作) 通过
-
python FTP批量下载/删除/上传实例
最近几天,学习python3的对FTP操作,做下总结!!!! 1.FTP链接 这样写的好处就是如果报错,很快就能找到错在哪里,方便找到问题. 2.FTP文件批量下载 有点要注意的: 如果for循环中不加while..try..except..,当然也可以下载,但经常会出现500网络连接错误类似这种错误!! 3.FTP文件批量删除 4.FTP文件上传 5.FTP关闭连接 目前就先分享到这里,新手上路多多关照!!!! 以上这篇python FTP批量下载/删除/上传实例就是小编分享给大家的全部内容了
随机推荐
- Centos7 下mysql重新启动MariaDB篇
- 1sass.exe,winnet.sys,2pwsdor.sys,k87wovjoq.sys病毒清除
- java生成图片验证码示例代码
- iOS自动生成表格效果的实现代码
- 简易的投票系统以及js刷票思路和方法
- 深入php self与$this的详解
- php数据库连接时容易出错的特殊符号问题
- python从网络读取图片并直接进行处理的方法
- mysql查询结果输出到文件的方法
- Mysql查询语句优化技巧
- 如何用js 实现依赖注入的思想,后端框架思想搬到前端来
- java中Servlet处理乱码的方法
- Linux下启动tomcat的方法
- C++中给二维指针分配内存(实现代码)
- jQuery学习笔记之 Ajax操作篇(一) - 数据加载
- jquery dataTable 获取某行数据
- jQuery内容折叠效果插件用法实例分析(附demo源码)
- WinXP注册表与驱动程序优化全集
- android自定义view之模拟qq消息拖拽删除效果
- ajax+php实现无刷新验证手机号的实例
