使用Python3 poplib模块删除服务器多天前的邮件实现代码


Posted in Python onApril 24, 2020

背景:

因为工作需要,公司给每个员工都分配了一个邮箱 公司的各种业务都通过邮箱发送。虽然给每个员工的电脑都设置pop3登录但是他们的程序设定有保存服务器副本,所以大量邮件使得服务器存储占用巨大。

删除服务器上多天前的邮件

实现:

  • 使用 Python poplib 进行删除查看操作
  • 使用email.parser 进行内容解析
  • 使用 dateutil.parser 做邮件日期转换

代码

# -*- coding: UTF-8 -*-
import poplib
import datetime
import dateutil.parser
from email.parser import Parser
from parser import ParserError

def deleteMail(days = 30):
 mailServer = poplib.POP3('mail.sunyieh.com', 110)
 mailServer.user('mis.cq@sunyieh.com')
 mailServer.pass_('password')
 mStat = mailServer.stat()
 print(mStat )#连接状态
 mailTotal = mStat[0]#邮件总数
 print("邮箱总邮件数量:{},占用{}b".format(mStat[0],mStat[1]))
 print(mailServer.getwelcome())

 # 使用list()返回所有邮件的编号,默认为字节类型的串
 resp, mails, octets = mailServer.list()
 print("响应信息: ", resp)
 print("list方法返回数据大小(字节): {}b".format( octets))
 for i in range(mailTotal):
  resp, mailContent, octets = mailServer.retr(i+1)
  # 可以获得整个邮件的原始文本:
  msg_content = Parser().parsestr(b'\r\n'.join(mailContent).decode("iso8859",""))
  dateStr = msg_content.get("Date","")
  print("日期字符串:",dateStr)
  try:
   maildate =dateutil.parser.parse(dateStr)
   # 判断多少天前的邮件
   if maildate.date() < datetime.datetime.now().date() - datetime.timedelta(days=days):
    print("正在删除邮件 第{}封,邮件日期:{} {}".format(i+1,maildate.date(),maildate.time()))
    mailServer.dele(i + 1)
   else:
    # 删除完成
    print("完成删除,本次共计删除{}封邮件!".format(i))
    break
  except ParserError:
   print("正在删除邮件 第{}封,邮件日期:没有".format(i + 1))
   mailServer.dele(i + 1)
 print("正在保存本次操作!")
 mailServer.quit()
 print("ok!")
if __name__ == "__main__":
 deleteMail(30)

效果

使用Python3 poplib模块删除服务器多天前的邮件实现代码

到此这篇关于使用Python3 poplib模块删除服务器多天前的邮件的实现代码的文章就介绍到这了,更多相关Python3 poplib模块删除邮件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python素数检测的方法
May 11 Python
Python 模拟登陆的两种实现方法
Aug 10 Python
Python 获得13位unix时间戳的方法
Oct 20 Python
利用python编写一个图片主色转换的脚本
Dec 07 Python
python+matplotlib绘制饼图散点图实例代码
Jan 20 Python
解决python os.mkdir创建目录失败的问题
Oct 16 Python
python线程中的同步问题及解决方法
Aug 29 Python
Python动态声明变量赋值代码实例
Dec 30 Python
pytorch 获取tensor维度信息示例
Jan 03 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
Feb 07 Python
详解django中Template语言
Feb 22 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
python实现读取类别频数数据画水平条形图案例
Apr 24 #Python
pandas中的ExcelWriter和ExcelFile的实现方法
Apr 24 #Python
Python内存映射文件读写方式
Apr 24 #Python
pandas的resample重采样的使用
Apr 24 #Python
python实现在内存中读写str和二进制数据代码
Apr 24 #Python
pandas DataFrame 数据选取,修改,切片的实现
Apr 24 #Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 #Python
You might like
2021年最新CPU天梯图
2021/03/04 数码科技
php下删除字符串中HTML标签的函数
2008/08/27 PHP
PHP无敌近乎加密方式!
2010/07/17 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
javascript之Partial Application学习
2013/01/10 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
2015/03/18 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
2018/03/22 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
JS实现提示框跟随鼠标移动
2019/08/27 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
Pytorch: 自定义网络层实例
2020/01/07 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
2020/02/11 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
2020/03/06 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
详解CSS 3 中的 calc() 方法
2018/01/12 HTML / CSS
微信浏览器取消缓存的方法
2015/03/28 HTML / CSS
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
京东国际站:JOYBUY
2017/11/23 全球购物
MIS软件工程师的面试题
2016/04/22 面试题
农村党支部书记四风问题个人对照检查材料
2014/09/21 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
律师函格式范本
2015/05/27 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python