2012-10-17 14 views
5

Ho uno script python che sta controllando le e-mail sul server IMAP di Gmail, visualizza l'ultima e-mail sul server. L'indirizzo email tuttavia sta ricevendo e-mail da più account diversi. Cosa farei per prendere questo script e visualizzare SOLO i messaggi relativi a un mittente specifico? Ad esempio, qualsiasi email inviata solo a "[email protected]" verrà visualizzata.Python - imaplib - Visualizza messaggio al mittente specifico

import imaplib 

mail = imaplib.IMAP4_SSL('imap.gmail.com') 
mail.login('[email protected]', 'password123') 
mail.list() 
# Out: list of "folders" aka labels in gmail. 
mail.select("inbox") # connect to inbox. 

result, data = mail.search(None, "ALL") 

ids = data[0] # data is a list. 
id_list = ids.split() # ids is a space separated string 
latest_email_id = id_list[-1] # get the latest 

result, data = mail.fetch(latest_email_id, "(RFC822)") # fetch the email body (RFC822) for the given ID 

raw_email = data[0][1] # here's the body, which is raw text of the whole email 
# including headers and alternate payloads 

Grazie in anticipo! :)

+2

Cosa succede quando si esegue una ricerca per i messaggi che si desidera, invece di "TUTTI", in mail.search()? – Dave

risposta

3

cambiamento:

result, data = mail.search(None, "ALL") 

a:

result, data = mail.search(None, '(TO "[email protected]")') 
Problemi correlati