Email-Body aus Email extrahieren

Pietro.Libretto

Cadet 1st Year
Registriert
März 2013
Beiträge
10
Hallo zusammen,

ich möchte ein Programm zum Auslesen von Emails schreiben. Über Sockets habe ich mir via POP3 eine Email von einem Server geholt. Diese Emails besteht natürlich zuerst aus etlichen Header-Zeilen und anschließend dem Body mit dem eigentliche Emailtext.

Mein Problem: Wie kann ich den Body aus der ganzen Mail rausfiltern, um ihn dann in einer Variable abzuspeichern??

Vielen Dank für die Hilfe schonmal!

Pietro
 
Hi,

verstehe die Frage nicht. Die Mail ist doch per se nur ein großer String oder irre ich? Parse dir doch für's erste einfach das gewünschte raus und gut.

In welcher Sprache überhaupt?

VG,
Mad
 
Ich programmier in Pyhton.
Ja genau, die Mail habe ich als "großen String" in einer Variable gespeichert. Und an dem Parsen hakts im Moment.

Ich hab gelesen, dass vor dem Body eine Leerzeile steht und nach der Email eine Zeile mit einem einzelnem Punkt.

Muss ich einfach nach '\n\n' suchen für den Anfang und nach '\n.' für das Ende der Mail?
 
Hi,

man könnte auch einfach Google nach sowas fragen :) Ist schon zu genüge geklärt sowas, z.B. hier oder hier oder oder oder...

VG,
Mad
 
Danke, da hast du recht.
Leider wird in allen Lösungen die google mir gegeben hat eine eingene Library (meistens "email") dafür eingefügt, die einem Sockets aufmachen und auch das Parsen übernehmen.

Ich möchte/muss das parsen selbst bewerkstelligen...
 
Hi,

dann lies dir die Python Dokumentation durch und parse den String, ganz einfach.

VG,
Mad
 
Ja, da habe ich gemacht. Leider sieht man eben so genau keine Zeihen wie '\n\n'.

Ich glaube, das Problem gefunden zu haben, warum mein Parsen nicht funktioniert. Vor jedem '\n' steht anscheinen ein Carriage Return '\r' , welches man natürlich auch nicht sieht...

Ich probier es gleich aus...
 
IMHO solltest du einfach die Header auswerten und dann rausschneiden, was dann noch über bleibt ist Nachricht & Anhang(kannst natürlich auch die erste leere Zeile einlesen). Der Umbruch ist nicht standardisiert, da musst du, je nach Absender, nach \r, \n und \r\n prüfen.

Wenn ich du wäre würde ich das Zeug zeilenweise ein ein Array stopfen, in einer Schleife durchgehen und alles nach dem ersten leeren Element ist Nachricht.
 
Pietro.Libretto schrieb:
Leider wird in allen Lösungen die google mir gegeben hat eine eingene Library (meistens "email") dafür eingefügt, die einem Sockets aufmachen und auch das Parsen übernehmen.

Ja, aber das email-Modul ist Teil der Python Standard Library, also sollte das doch kein Problem sein, oder? Und ich glaube auch nicht, dass email.parser dir irgend-welche Sockets aufmachen muß, nur um eine email zu parsen, falls dir das Sorgen macht.

P.S. Bitte gib in Zukunft in deinem Threadtitel an, um welche Programmiersprache / Technologie es in deiner Frage geht.
 
Zurück
Oben