Michal Čihař - Mažu všechno staré

Mažu všechno staré

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()