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

 更新时间:2020年04月24日 11:19:52   作者:singleShape  
这篇文章主要介绍了使用Python3 poplib模块删除多天前的邮件的实现代码,代码简单易懂,非常不错,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

背景:

因为工作需要,公司给每个员工都分配了一个邮箱 公司的各种业务都通过邮箱发送。虽然给每个员工的电脑都设置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模块删除邮件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法

    修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法

    这篇文章主要介绍了修复CentOS7升级Python到3.6版本后yum不能使用的问题,本文给大家带来了解决方法,需要的朋友可以参考下
    2018-01-01
  • python实现图像的随机增强变换

    python实现图像的随机增强变换

    这篇文章主要为大家介绍了如何利用pythons制作一个小工具工具,可以实现图像的随机增强变换,可用于分类训练数据的增强,有需要的可以参考下
    2024-11-11
  • python格式化输出format()函数常见用法和格式选项

    python格式化输出format()函数常见用法和格式选项

    这篇文章主要介绍了python格式化输出format()函数常见用法和格式选项的相关资料,format方法是一种强大的字符串格式化工具,它允许你将变量或表达式插入到字符串中,并根据需要进行格式化,需要的朋友可以参考下
    2025-03-03
  • Python绘制饼图、圆环图的实例

    Python绘制饼图、圆环图的实例

    这篇文章主要介绍了Python绘制饼图、圆环图的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Pycharm 2020年最新激活码(亲测有效)

    Pycharm 2020年最新激活码(亲测有效)

    本文给大家分享Pycharm 2020年最新激活码,亲测试过可以放心使用,感兴趣的朋友快来吧
    2020-01-01
  • PyCharm中如何切换Python版本

    PyCharm中如何切换Python版本

    这篇文章主要介绍了PyCharm中如何切换Python版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)

    使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)

    这篇文章主要介绍了使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • pytorch 实现二分类交叉熵逆样本频率权重

    pytorch 实现二分类交叉熵逆样本频率权重

    这篇文章主要介绍了pytorch 实现二分类交叉熵逆样本频率权重的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python基础学习之认识线程

    Python基础学习之认识线程

    这篇文章主要介绍了Python线程,这篇开始我们将进入中级编程。处理更加复杂事情。比如本文的线程,咱们先从基础知识入手,需要的朋友可以参考下下面文章的详细内容
    2022-02-02
  • Django 5种类型Session使用方法解析

    Django 5种类型Session使用方法解析

    这篇文章主要介绍了Django 5种类型Session使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论