python实现下载pop3邮件保存到本地


Posted in Python onJune 19, 2018

利用python进行unix管理一书中有一个登陆下载邮箱的脚本,实练了下还不错,对于邮箱备份来说还是比较快捷的,但是其命名方式是以编号和 文件大小来命名的,不方便阅读,于是进行了改进修改为发件人邮件地址命名,可能由于跨度时间较长,邮件排版有改变,有些邮件获取发件人的时候不能正确匹配。

1、命名方式是以编号和 文件大小来命名

#!/usr/bin/env python 
#-*- coding: utf-8 -*- 
#filename:receive_pop3_email_download.py 
 
import poplib 
 
username = 'dxx_study' 
passwd = 'xXXXXXXX' 
 
mail_server = 'pop.163.com' 
 
p = poplib.POP3(mail_server) 
p.user(username) 
p.pass_(passwd) 
for msg_id in p.list()[1]: 
  print msg_id 
  outf = open('%s.eml' % msg_id, 'w') 
  outf.write('\n'.join(p.retr(msg_id)[1])) 
  outf.close() 
p.quit()

输出:

>>> ================================ RESTART ================================ 
>>>  
1 6189 
2 14284 
3 1712 
4 24912 
5 129052 
6 1399 
7 23298 
8 47902 
9 2334 
10 48887 
11 1081 
12 34930 
13 2098 
14 26316 
15 32381 
16 1822

python实现下载pop3邮件保存到本地

2、发件人邮件地址命名

#!/usr/bin/env python 
#-*- coding: utf-8 -*- 
#filename:receive_pop3_email.py 
 
import poplib, re 
 
username = 'dxx_study' 
passwd = 'xuXXXXXu' 
 
mail_server = 'pop.163.com' 
 
p = poplib.POP3(mail_server) 
 
#p.set_debuglevel(2)#设置调试信息打印级别 
#s = p.getwelcome()#打印欢迎信息 
p.user(username) 
p.pass_(passwd) 
p.stat() 
#p.list()#返回收件箱邮件数目,邮件大小,与p.list()[0]相同 
#p.retr(42)#提取对应邮件的内容 
#print p.top(42,42)#提取对应邮件,可以对内容按行数提取 
#p.uidl()#Return message digest (unique id) list 
#p.list()[1]#依次返回每个邮件大小,如['1 6189', '2 14284', '3 1712',....] 
#p.retr(2)[0]#返回第二封个邮件14284 octets大小 
 
 
 
def file_name(text):#这个匹配效率比较低,值得改进 
  pattern = u"Sender: (.*)" 
  file_name = re.search(pattern, text, re.I) 
  if file_name == None: 
    exit 
  else: 
    return file_name.group(1) 
 
 
def download_mail(): 
  for msg_id in p.list()[1]: 
    retr = p.retr(msg_id)[1] 
    for i in range(0,len(retr)): 
      name = file_name(retr[i])#利用filename进行正则匹配获取发件人 
      if name == None: 
        exit 
      else: 
        outf = open('%s.eml' % name, 'w') 
        outf.write('\n'.join(retr)) 
        outf.close() 
 
download_mail() 
p.quit()

python实现下载pop3邮件保存到本地

以上功能对于备份邮件还是比较有用的,因为附件也下载下来了。由于pop3邮件服务比较过时了,服务也不够稳定,目前采用IMAP的比较流行,后面有空再写个支持后者的,能支持用户自己输入选择,提取各个邮件客户端的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python获取远程图片大小和尺寸的方法
Mar 26 Python
Python 爬虫爬取指定博客的所有文章
Feb 17 Python
利用Python获取操作系统信息实例
Sep 02 Python
Python编程判断这天是这一年第几天的方法示例
Apr 18 Python
python通过getopt模块如何获取执行的命令参数详解
Dec 29 Python
Python3多线程操作简单示例
May 22 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
Django中的用户身份验证示例详解
Aug 07 Python
基于python代码批量处理图片resize
Jun 04 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
Sep 16 Python
python生成xml时规定dtd实例方法
Sep 21 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
Nov 12 Python
python+POP3实现批量下载邮件附件
Jun 19 #Python
python实现批量解析邮件并下载附件
Jun 19 #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
You might like
php扩展ZF――Validate扩展
2008/01/10 PHP
php 采集书并合成txt格式的实现代码
2009/03/01 PHP
php的urlencode()URL编码函数浅析
2011/08/09 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
Laravel框架实现的记录SQL日志功能示例
2018/06/19 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
简介JavaScript中的getSeconds()方法的使用
2015/06/10 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
Node.Js中实现端口重用原理详解
2018/05/03 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
微信小程序如何获取地址
2019/12/24 Javascript
Python实现全局变量的两个解决方法
2014/07/03 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
Python爬取成语接龙类网站
2018/10/19 Python
Python基于当前时间批量创建文件
2020/05/07 Python
Python使用Matlab命令过程解析
2020/06/04 Python
html5 拖拽及用 js 实现拖拽功能的示例代码
2020/10/23 HTML / CSS
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
优秀员工自荐书
2013/12/19 职场文书
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
售后服务经理岗位职责范本
2014/02/22 职场文书
户外活动策划方案
2014/03/12 职场文书
优秀护士演讲稿
2014/04/30 职场文书
献爱心大型公益活动策划方案
2014/09/15 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
护士自我推荐信范文
2015/03/24 职场文书
MySQL中连接查询和子查询的问题
2021/09/04 MySQL