Rolf b: TXT parsen

Beitrag lesen

Ich zitiere die Datei in Tilden eingeschlossen, um die Zeilenumbrüche zu retten. Ich unterstelle mal, dass die Minuszeichen-Zeilen nicht zur Datei gehören.

To: ab@domain.tld
Subject: Der Betreff
From: xp@domain.tld
Reply-To: xp@domain.tld

Hier kommt meine Nachricht
To: gc@domain.tld
Subject: Der Betreff
From: xp@domain.tld
Reply-To: xp@domain.tld

Hier kommt eine andere Nachricht

Erstmal eine Antwort im Rahmen deiner Grundannahmen:

Ein explode("To:") ist meiner Meinung nach nicht nur wegen des Reply-To riskant, du kannst ja auch ein To: im Mail-Body oder im Subject haben. Meiner Meinung nach solltest Du als Minimallösung die Datei zeilenweise einlesen und an den Zeilenanfängen nach dem To: suchen. Dann weißt Du, in welchen Zeilen die Mails beginnen und kannst die Ausgabe danach gruppieren.

Und jetzt mal weiter gedacht:

Kennst Du die Mail-"Norm" RFC-822 bzw. ihre Nachfolger 2822 und 5322? Ich finde es riskant, den Anfang einer Mail (und damit das Ende einer vorigen Mail) durch eine To: Zeile festzulegen, das kann schief gehen. RFC-822 legt fest, dass eine Mail mit Headern beginnt (schlüsselwort doppelpunkt space headerwerte), darauf folgt eine Leerzeile und dann beginnt der Body. Für den Body gilt nur eine Einschränkung: Die Zeilen DÜRFEN nicht länger als 998 Zeichen sein und SOLLTEN die 78 Zeichen nicht überschreiten (plus CR LF als Zeilenschaltung). Eine Body-Zeile, die mit To: beginnt, ist absolut legal und würde Dich aus der Bahn werfen.

Zum einen legt RFC-822 meines Wissens nicht fest, dass To: das erste Headerfeld sein muss. Wenn die Datei von Dir erzeugt wird, oder du irgendeine Form von Kontrolle über ihre Erzeugung hast, solltest Du eine andere Kennung für "Ab hier neue Mail" finden.

Gruß Rolf