#! /home/tgolden/bin/python2.5 import os, sys from mailbox import mbox blacklist_filepath = os.path.join (os.path.expanduser ("~"), ".procmail_blacklist") mail_root = os.path.join (os.path.expanduser ("~"), "mail") mailboxes = ['IN-bad'] if os.path.isfile (blacklist_filepath): subjects = set (line.strip () for line in open (blacklist_filepath)) else: subjects = set () for mailbox in mailboxes: mailbox_path = os.path.join (mail_root, mailbox) if not os.path.isfile (mailbox_path): continue print "Scanning:", mailbox_path mbox = mbox (mailbox_path) try: while True: try: key, mail = mbox.popitem () except KeyError: break else: subject = mail['subject'] if subject: subjects.add (subject) print "Adding:", subject finally: mbox.close () f = open (blacklist_filepath, "w") try: f.write ("\n".join (subjects)) finally: f.close ()