2012-10-17 7 views
5

Ich habe ein Python-Skript, das E-Mails auf Gmail IMAP-Server überprüft, es zeigt die neueste E-Mail auf dem Server. Die E-Mail-Adresse empfängt jedoch E-Mails von mehreren verschiedenen Konten. Was würde ich tun, um dieses Skript anzusehen und NUR Nachrichten anzeigen zu lassen, die an einen bestimmten Absender gerichtet sind? Zum Beispiel wird nur eine E-Mail an "[email protected]" gesendet.Python - imaplib - Nachricht an bestimmten Absender anzeigen

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 

Vielen Dank im Voraus! :)

+2

Was passiert, wenn Sie sich für die Nachrichten suchen Sie wollen, anstelle von "ALL", in mail.search()? – Dave

Antwort

3

Änderung:

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

zu:

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