#!/usr/bin/python # # purgeimap -- purge old messages in an IMAP folder # # By Justin R. Miller # # Version 0.1 - Sat 11 Aug 2001 # import os, string, time, imaplib rcfile = os.environ["HOME"] + '/.purgeimap' fp = open(rcfile) while 1: line = fp.readline() if not line: break tokens = string.split(string.strip(line)) if tokens[0] == 'server': server = tokens[1] elif tokens[0] == 'port': port = int(tokens[1]) elif tokens[0] == 'username': username = tokens[1] elif tokens[0] == 'password': password = tokens[1] elif tokens[0] == 'folder': folder = tokens[1] elif tokens[0] == 'age': age = int(tokens[1]) fp.close() timestamp = time.localtime(time.time() - (age * 86400)) purgedate = time.strftime('%d-%b-%Y', timestamp) m = imaplib.IMAP4(server, port) m.login(username, password) m.select(folder) typ, msgs = m.search(None, '(BEFORE ' + purgedate + ')') for num in string.split(msgs[0]): m.store(num, '+FLAGS', '(\Deleted)') expunged = m.expunge() m.logout() if expunged[1] != [None]: print 'There were %s message(s) deleted.' % len(expunged[1]) else: print 'There were no messages over %s days old.' % age