Tom: formmailer

Beitrag lesen

Hello,

"\r\n" ist aber die in Mailheadern zu benutzende Form des Zeilenumbruchs. *Eigentlich* sollten Emailprogramme, -server, -wasauchimmer damit umgehen können, auch wenn sie zusätzlich "\n" als Zeilenumbruch akzeptieren.

DAS haben wir hier nun aber schon zur Genüge diskutiert.

Die klassischen "sendmail" Scripte auf Linux Hosts wollen keine "\r\n" geliefert bekommen, da sie die bei Verwendung in der Shell ja üblicherweise auch nicht bekommen. Darum entfernt PHP in der Mail()-Funktion auch alle Zeilenendezeichen aus den erkennbaren Headern (und der Leerzeile danach) und ersetzt sie durch "\n". Wenn Du aber nun über das $header-Argument der Funktion eigene Bereiche (für den eigentlichen Mailbody) übergibst, wie z.B. ein base64-codiertes Attachment, dann darfst Du das nicht mit "\r\n" wrappen lassen, sondern nur mit "\n". Die Mail()-Funktion würde das in diesem Fall  nicht mehr selber korrigieren (also bewußt auf "\n" zurücksetzen).

Das "sendmail"-Script sorgt dann dafür, dass der MTA nur mit "\r\n" abgeschlossene Zeilen bekommt, in dem es leider alle "\r" _und_ alle "\n" in "\r\n" umwandelt.

Mag sein, dass es da inzwischen auch Scripte gibt, die das nicht tun. Mir ist aber noch keins begegnet.

Liebe Grüße aus Syburg

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de