Wie effizient analysieren, E-Mails, ohne diese zu berühren Anlagen mit Python
Ich Spiele mit Python imaplib (Python 2.6) zum abrufen von E-Mails aus GMail. Alles, was ich Holen eine E-Mail mit Methode http://docs.python.org/library/imaplib.html#imaplib.IMAP4.fetch bekomme ich ganze E-Mail. Ich brauche nur-text-Teil und auch der parse-Namen von Anhängen, ohne Sie herunterzuladen. Wie dies geschehen kann? Ich sehe, dass E-Mails zurückgegeben von Google Folgen dem gleichen format, das Browser senden zu HTTP-Servern.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf dieses Rezept: http://code.activestate.com/recipes/498189/
Angepasst ich es etwas zu drucken, Von, Betreff, Datum, name der Anlagen, und dem Nachrichtentext (nur Klartext-für jetzt-seine trivial hinzufügen von html-Nachrichten).
Verwendet habe ich das Gmail-pop3-server ist in diesem Fall, es sollte aber bei IMAP auch.
Diese sollten ausreichen, um Sie in die richtige Richtung.
poplib.retr()
lädt die gesamte Nachricht.Können Sie erhalten nur den reinen text der E-Mail etwas zu tun wie:
Für die gmail-Nachrichten, die ich gesehen habe, Abschnitt 1 enthält den Klartext, einschließlich multipart junk. Dies ist möglicherweise nicht so robust.
Ich weiß nicht, wie man den Namen der Anlage, ohne alles. Ich habe nicht versucht, mit partials.
Ich fürchte, Sie sind aus Glück heraus. Nach dieser Beitrag, es gibt nur zwei Teile, um die E-Mail - header und body. Der Körper ist, wo die Anlagen sind, wenn es irgendwelche gibt, und Sie haben zum download des gesamten Körpers vor dem extrahieren nur der text der Nachricht. Die info über den FETCH-Befehl gefunden hier unterstützt auch dieser Meinung. Während es sagt, die Sie extrahieren können teilbewegungen des Körpers, diese werden angegeben in Bezug auf die Bytes, die nicht wirklich helfen.