#!/usr/bin/python
import imaplib, mailbox
import sys, re, os

user=''
passwd=''
imap_server = ''
mailbox = 'Inbox.Sent'
mbox = "test.mbox"

def connectIMAP():
	imap = imaplib.IMAP4_SSL(imap_server)
	imap.login(user, passwd)
	return imap

# Scans a mailbox and returns a dictionary of the ids
def scanMailbox(imap, mailbox):
	messages_by_id = {}
	typ, data = imap.select(mailbox, readonly = True)
	if 'OK' != typ:
		print ("Failed: %s" % (data))
	num_msg = int(data[0])
	for i in range(1, num_msg+1):
		typ, data = imap.fetch(i, '(BODY.PEEK[HEADER.FIELDS (MESSAGE-ID)])')
		if 'OK' != typ:
			print ("FETCH command failed: %s" % (i, data))
		mail_header = data[0][1].strip()
		msg_id = re.compile("^Message\-Id\: (.+)", re.IGNORECASE + re.MULTILINE).match(mail_header).group(1)
		if msg_id not in messages_by_id.keys():
			messages_by_id[msg_id] = i
	print ( "%d messages in %s" % (len(messages_by_id.keys()), mailbox))
	return messages_by_id

def downloadMail():
	print ("I'm learnding")

if __name__ == '__main__':
	imap = connectIMAP()
	scanMailbox(imap, mailbox)
	downloadMail()	
