#/usr/bin/python
""" $Id: recips.py,v 1.3 2001/07/23 13:44:44 connolly Exp $
"""

import string
from string import lower

import sys, getpass

import imaplib2, imap_sort
imaplib = imaplib2

ENVELOPE=imap_sort.ENVELOPE

def main(argv):
    srvHost='127.0.0.1' #@@HARDCODED
    srvPort=143
#    srvPort=4000
    
    progress("connecting to", (srvHost, srvPort))
    M = imaplib.IMAP4(srvHost, srvPort)
    progress("logging in")
    M.LOGIN(getpass.getuser(), getpass.getpass())

    for timep in argv[1:]:
        listSenders(M, timep, "IMAP/Archive/%s" % (timep,))

def listSenders(conn, timep, mboxn):
    conn.SELECT(mboxn)
    typ, data = conn.search(None, "from \"connolly@w3.org\"") #@@HARDCODED
    hits = string.split(data[0])

    if hits:
        msgSet = string.join(hits, ",")
        (typ, hits) = conn.fetch(msgSet, 'ENVELOPE')
        for hit in hits:
            l = imap_sort.parseList(hit[1:])
            assert l[0] is ENVELOPE, l
            env_date, env_subject, \
                      env_from, env_sender, env_reply_to, \
                      env_to, env_cc, env_bcc, \
                      env_in_reply_to, env_message_id = l[1]
            for recip in tuple(env_to) + tuple(env_cc):
                if recip:
		    try:
                        d=lower(recip[3])
                        print '%s %s %s@%s %s' % (timep, env_message_id, recip[2], d, recip[0] or "")
                    except:
			progress("bogus recip", recip)


def progress(*args):
    for a in args:
	sys.stderr.write(str(a) + " ")
    sys.stderr.write("\n")

if __name__ == '__main__':
    main(sys.argv)
