A máme tu další z řady jednoduchých skriptíků pro práci s IMAPem. Tentokráte smažeme všechny staré maily, aby složky s mailing listy příliš nebobtnaly.
#!/usr/bin/python import sys import imaplib import time import string def purge_step(age, flag): l = m.search(None, flag, 'UNFLAGGED', 'UNDELETED', 'BEFORE', time.strftime('%d-%b-%Y', age)) for st in l[1]: if st: sts = st.split() while sts: m.store(string.join(sts[:1000], ','), '+FLAGS.SILENT', '\deleted') del sts[:1000] if len(sys.argv) != 4: print 'Usage: imap_purge folder age unreadage' sys.exit(4) folder = sys.argv[1] ts_read = time.localtime(time.time() - (int(sys.argv[2]) * 86400)) ts_unread = time.localtime(time.time() - (int(sys.argv[3]) * 86400)) m = imaplib.IMAP4('SERVER') res = m.login('USERNAME', 'PASSWORD') if res[0] != 'OK': sys.stderr.write("login: %s\n" % str(res)) sys.exit(1) res = m.select(folder) if res[0] != 'OK': sys.stderr.write("select: %s\n" % str(res)) sys.exit(2) purge_step(ts_read, 'SEEN') purge_step(ts_unread, 'UNSEEN') m.expunge()