Obtenir les plus récents de n e-mails en utilisant IMAP et Python

Je suis à la recherche de retour de la n (probablement 10) la plupart des e-mails à partir d'un des comptes de courriel à l'aide de la boîte de réception IMAP.

Jusqu'à présent, j'ai bricolé:

import imaplib
from email.parser import HeaderParser

M = imaplib.IMAP4_SSL('my.server')
user = 'username'
password = 'password'
M.login(user, password)
M.search(None, 'ALL')
for i in range (1,10):
    data = M.fetch(i, '(BODY[HEADER])')
    header_data = data[1][0][1]
    parser = HeaderParser()
    msg = parser.parsestr(header_data)
    print msg['subject']

C'est le retour d'e-mails très bien, mais il semble être un semi-aléatoire de collecte d'e-mails qu'il reçoit, pas les 10 plus récents.

Si ça aide, je me connecte à un serveur Exchange 2010. D'autres approches aussi les bienvenus, IMAP me semblait la plus appropriée étant donné que j'ai seulement envie de lire les e-mails de ne pas envoyer de.

OriginalL'auteur mrmagooey | 2011-04-12