#!/usr/bin/env python import mailbox, rfc822 import sys, os, string, re LF = '\x0a' def write_msg (fout, msg): fout.write (msg.unixfrom) for l in msg.headers: fout.write(l) fout.write(LF) fout.write(msg.fp.read()) def process_mailbox (mbox_in, mbox_out): f = open(mbox_in) fout = open(mbox_out, 'w') mb = mailbox.PortableUnixMailbox (f) found_ids = {} for msg in mb: id = msg.getheader('Message-ID') if found_ids.has_key(id): continue found_ids[id] = True write_msg (fout, msg) f.close() fout.close() def main (): mbox_in = sys.argv[1] mbox_out = mbox_in + '.out' process_mailbox (mbox_in, mbox_out) if __name__ == '__main__': main ()