Christian Seiler: Trennung von Headerinfos, Subject und Body in einer E-Mail

Beitrag lesen

Hallo Christian,

Nun die Frage, wie sind Header unter sich getrennt. Wie krieg ich den Body und den Betreff??

Das Format einer Internetnachricht wird in RFC 2822 festgelegt: http://www.ietf.org/rfc/rfc2822.txt

sind die mit \n oder \r\n getrennt??

Das Zeilentrennzeichen ist \r\n; der Header ist mit zwei aufeinanderfolgende Zeilentrennzeichen vom Body getrennt. Jeder Header-"Eintrag" ist in _genau_ einer Zeile enthalten. Jeder einzelne sieht so aus: 'Name: Wert'. Für den Betreff heißt das also: 'Subject: ...'.

Du könntest also die Mail nach "\r\n\r\n" trennen, dabei sollten maximal zwei Teile rauskommen. Dann könntest Du die Header nach "\r\n" trennen und dann jeden einzelnen Eintrag nach ': ' trennen. Dann hättest Du die Namen und die Werte der einzelnen Einträge.

Sinnvoller als \r\n wäre allerdings der reguläre Ausdruck (\015\012|\012|\015) da Du ja nicht weißt, ob Dir die Zeilenenden nicht irgendwie doch einen Streich spielen.

Hier wurde auch schon gemeint, man solle die imap-Funktionen benutzen, aber geht das bei einem POP3-Account??

Ja, die imap-Funktionen funktionieren auch mit POP3. Schau einfach mal in die PHP-Doku.

Viele Grüße,
Christian