Obtener n correos electrónicos más recientes usando IMAP y Python
Estoy buscando devolver los n (probablemente 10) correos electrónicos más recientes de una bandeja de entrada de cuentas de correo electrónico usando IMAP.
Hasta ahora he improvisado:
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']
Esto está devolviendo los encabezados de correo electrónico bien, pero parece ser una colección semialeatoria de correos electrónicos que recibe, no los 10 más recientes.
Si ayuda, me estoy conectando a un servidor de Exchange 2010. Otros enfoques también son bienvenidos, IMAP me pareció el más apropiado dado que solo quería leer los correos electrónicos y no enviar ninguno.