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

所属分类: 脚本专栏 / python 阅读数: 1560
收藏 0 赞 0 分享

背景:

因为工作需要,公司给每个员工都分配了一个邮箱 公司的各种业务都通过邮箱发送。虽然给每个员工的电脑都设置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)

效果

在这里插入图片描述

更多精彩内容其他人还在看

Python环境管理virtualenv&virtualenvwrapper的配置详解

这篇文章主要介绍了Python环境管理virtualenv&virtualenvwrapper的配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

ITK 实现多张图像转成单个nii.gz或mha文件案例

这篇文章主要介绍了ITK 实现多张图像转成单个nii.gz或mha文件案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

.img/.hdr格式转.nii格式的操作

这篇文章主要介绍了.img/.hdr格式转.nii格式的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

python使用nibabel和sitk读取保存nii.gz文件实例

这篇文章主要介绍了python使用nibabel和sitk读取保存nii.gz文件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

使用ITK-SNAP进行抠图操作并保存mask的实例

这篇文章主要介绍了使用ITK-SNAP进行抠图操作并保存mask的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

基于python实现音乐播放器代码实例

这篇文章主要介绍了基于python实现音乐播放器代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Python 存取npy格式数据实例

这篇文章主要介绍了Python 存取npy格式数据实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Python代码执行时间测量模块timeit用法解析

这篇文章主要介绍了Python代码执行时间测量模块timeit用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

在keras里实现自定义上采样层

这篇文章主要介绍了在keras里实现自定义上采样层,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

用Python开发app后端有优势吗

在本篇文章里小编给大家整理的是关于app后端开发学PHP还是Python的先关问题内容,需要的朋友们可以参考下。
收藏 0 赞 0 分享
查看更多