您的位置:首頁/技術文章
文章詳情頁

使用Python3 poplib模塊刪除服務器多天前的郵件實現代碼

瀏覽:29日期:2022-07-27 16:48:33

背景:

因為工作需要,公司給每個員工都分配了一個郵箱 公司的各種業務都通過郵箱發送。雖然給每個員工的電腦都設置pop3登錄但是他們的程序設定有保存服務器副本,所以大量郵件使得服務器存儲占用巨大。

刪除服務器上多天前的郵件

實現:

使用 Python poplib 進行刪除查看操作 使用email.parser 進行內容解析 使用 dateutil.parser 做郵件日期轉換

代碼

# -*- coding: UTF-8 -*-import poplibimport datetimeimport dateutil.parserfrom email.parser import Parserfrom parser import ParserErrordef 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’rn’.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 編程
相關文章:
国产综合久久一区二区三区