使用Python3 poplib模塊刪除服務(wù)器多天前的郵件實現(xiàn)代碼
背景:
因為工作需要,公司給每個員工都分配了一個郵箱 公司的各種業(yè)務(wù)都通過郵箱發(fā)送。雖然給每個員工的電腦都設(shè)置pop3登錄但是他們的程序設(shè)定有保存服務(wù)器副本,所以大量郵件使得服務(wù)器存儲占用巨大。
刪除服務(wù)器上多天前的郵件
實現(xiàn):
- 使用 Python poplib 進(jìn)行刪除查看操作
- 使用email.parser 進(jìn)行內(nèi)容解析
- 使用 dateutil.parser 做郵件日期轉(zhuǎn)換
代碼
# -*- 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 )#連接狀態(tài) mailTotal = mStat[0]#郵件總數(shù) print("郵箱總郵件數(shù)量:{},占用{}b".format(mStat[0],mStat[1])) print(mailServer.getwelcome()) # 使用list()返回所有郵件的編號,默認(rèn)為字節(jié)類型的串 resp, mails, octets = mailServer.list() print("響應(yīng)信息: ", resp) print("list方法返回數(shù)據(jù)大?。ㄗ止?jié)): {}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)
效果
到此這篇關(guān)于使用Python3 poplib模塊刪除服務(wù)器多天前的郵件的實現(xiàn)代碼的文章就介紹到這了,更多相關(guān)Python3 poplib模塊刪除郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python數(shù)據(jù)分析基礎(chǔ)知識之shape()函數(shù)的使用教程
shape函數(shù)是numpy.core.fromnumeric中的函數(shù),它的功能是讀取矩陣的長度,比如shape[0]就是讀取矩陣第一維度的長度,下面這篇文章主要給大家介紹了關(guān)于python數(shù)據(jù)分析基礎(chǔ)知識之shape()函數(shù)使用的相關(guān)資料,需要的朋友可以參考下2022-09-09python?OpenCV實現(xiàn)圖像特征匹配示例詳解
這篇文章主要為大家介紹了python?OpenCV實現(xiàn)圖像特征匹配示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Django request.META.get()獲取不到header頭的原因分析
這篇文章主要介紹了Django request.META.get()獲取不到header頭的原因分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04python刪掉重復(fù)行之drop_duplicates()用法示例
Pandas的drop_duplicates()方法用于從DataFrame中刪除重復(fù)的行,這篇文章主要給大家介紹了關(guān)于python刪掉重復(fù)行之drop_duplicates()用法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08利用Python進(jìn)行圖像的加法,圖像混合(附代碼)
這篇文章主要介紹了利用Python進(jìn)行圖像的加法,圖像混合(附代碼),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07matplotlib基礎(chǔ)繪圖命令之imshow的使用
這篇文章主要介紹了matplotlib基礎(chǔ)繪圖命令之imshow的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08