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解决鸡兔同笼问题的方法
Dec 20 Python
python图像处理之反色实现方法
May 30 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
Python如何实现守护进程的方法示例
Feb 08 Python
解决python xlrd无法读取excel文件的问题
Dec 25 Python
python redis 批量设置过期key过程解析
Nov 26 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 Python
Python3.7实现验证码登录方式代码实例
Feb 14 Python
Python tkinter布局与按钮间距设置方式
Mar 04 Python
python实现吃苹果小游戏
Mar 21 Python
浅谈Python 参数与变量
Jun 20 Python
Python连接mysql方法及常用参数
Sep 01 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 开发环境配置(Zend Studio)
2010/04/28 PHP
php.ini中date.timezone设置分析
2011/07/29 PHP
浅析PHP递归函数返回值使用方法
2013/02/18 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
jquery pagination插件实现无刷新分页代码
2009/10/13 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
Node.js中文件系统fs模块的使用及常用接口
2020/03/06 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
Python paramiko模块的使用示例
2018/04/11 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
Python正则表达式实现简易计算器功能示例
2019/05/07 Python
Django 用户认证组件使用详解
2019/07/23 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
如何在python中判断变量的类型
2020/07/29 Python
python xlsxwriter模块的使用
2020/12/24 Python
埃弗顿足球俱乐部官方网上商店:Everton Direct
2018/01/13 全球购物
聘用意向书范本
2014/04/01 职场文书
销售目标责任书
2014/07/23 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
给学校的建议书400字
2015/09/14 职场文书
商业计划书之服装
2019/09/09 职场文书
VUE递归树形实现多级列表
2022/07/15 Vue.js