Esta duda se puede solucionar de diferentes formas, pero te enseñamos la resolución más completa en nuestra opinión.
Solución:
Sugiero usar IMAPClient ya que documenta muchos de los aspectos más esotéricos de IMAP.
El siguiente fragmento extraerá mensajes según sus criterios, analizará las cadenas de mensajes para email.message.Message
instancias e imprimir el Date
y From
encabezados
from datetime import datetime, timedelta
import email
from imapclient import IMAPClient
HOST = 'imap.gmail.com'
USERNAME = 'username'
PASSWORD = 'password'
ssl = True
today = datetime.today()
cutoff = today - timedelta(days=5)
## Connect, login and select the INBOX
server = IMAPClient(HOST, use_uid=True, ssl=ssl)
server.login(USERNAME, PASSWORD)
select_info = server.select_folder('INBOX')
## Search for relevant messages
## see http://tools.ietf.org/html/rfc3501#section-6.4.5
messages = server.search(
['FROM "[email protected]"', 'SINCE %s' % cutoff.strftime('%d-%b-%Y')])
response = server.fetch(messages, ['RFC822'])
for msgid, data in response.iteritems():
msg_string = data['RFC822']
msg = email.message_from_string(msg_string)
print 'ID %d: From: %s Date: %s' % (msgid, msg['From'], msg['date'])
import imaplib
from datetime import datetime, timedelta
obj = imaplib.IMAP4_SSL('imap.gmail.com',993)
obj.login('username','password')
obj.select()
today = datetime.today()
cutoff = today - timedelta(days=5)
dt = cutoff.strftime('%d-%b-%Y')
typ, data = obj.search(None, '(SINCE %s) (FROM "[email protected]")'%(dt,))
print data
Comentarios y valoraciones
Si piensas que te ha sido útil nuestro post, nos gustaría que lo compartas con el resto desarrolladores así nos ayudas a extender este contenido.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)