IMAP bekommen, Absender-name und-text?
Ich bin mit diesem code:
import imaplib
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login(myusername, mypassword)
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
print raw_email
und es funktioniert, außer wenn ich drucken raw_email
es gibt eine Reihe von zusätzlichen Informationen, wie kann ich analysieren, pro sagen, der zusätzliche Informationen und erhalten nur die Von Körper und text?
InformationsquelleAutor Sam Tubb | 2013-10-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Python ' s E-Mail Paket ist wahrscheinlich ein guter Ort, um zu starten.
Dass tun sollten, Fragen Sie Fragen, wenn Sie eine E-Mail hat mehrere Teile (Anlagen -, text-und HTML-Versionen des Körpers, etc.) Dinge sind ein bisschen komplizierter.
In diesem Fall
msg.is_multipart()
True zurück undmsg.get_payload()
gibt eine Liste anstelle eines string. Es gibt eine Menge mehr Informationen in der E-Mail.Nachricht Dokumentation.Abwechselnd, sondern als Analyse der raw-RFC822-formatierte Nachricht, und das könnte sehr groß sein, wenn die E-Mail enthält Anhänge - Sie können einfach Fragen Sie den IMAP-server für die Informationen, die Sie wollen. Ändern Sie Ihre
mail.fetch
Zeile:Würden nur fordern (und zurück) die Von Zeile der E-Mail vom server. Ebenso werden Sie den zweiten parameter
"(UID BODY[TEXT])"
zurückkehren würde, der Körper der E-Mail. RFC2060 hat eine Liste der Parameter, die gültig sein sollte hier.InformationsquelleAutor 1133261