pythonで古いメールだけを削除する
プライベートのメールサーバーにmaddyを使っているのだが、maddyにはゴミ箱の古いメールだけを自動削除する機能がない。 ゴミ箱を一気に空にしてしまってもいいのだが、それだと後から必要になってくるメールも永久に消滅してしまう懸念がある。
本ページでは、maddyに限らず、IMAP越しにゴミ箱の中の古いメールを削除するpythonスクリプトを紹介する。 削除の自動化までしようかと思ったけど、別にそこまでしなくていいやと思ったのでスクリプトの紹介だけ。
スクリプト
HOST
USERID
PASSWORD
は、適宜自分のものに変える。
import imaplib import datetime date = (datetime.datetime.now() - datetime.timedelta(days=30)).strftime("%d-%b-%Y") with imaplib.IMAP4_SSL("HOST") as cli: cli.login("USERID", "PASSWORD") cli.select("Trash") status, result = cli.search(None, f"(BEFORE {date})") mails = result[0].split() for mail in mails: cli.store(mail, "+FLAGS", "\\Deleted") cli.expunge()
IMAPを扱うimaplibは、pythonの標準ライブラリに含まれている。pythonすごい