zeilenumbrueche in additional headers von mail()
seth_not@home
- php
0 seth_not@home0 Nick0 seth_not@home0 Nick
0 rob
gudn tach!
im <http://de.php.net/manual/en/function.mail.php@php-maual unter mail()> steht zum optionalen parameter additional_headers:
"Multiple extra headers should be separated with a CRLF (\r\n)."
und
"Note: If messages are not received, try using a LF (\n) only. Some poor quality Unix mail transfer agents replace LF by CRLF automatically (which leads to doubling CR if CRLF is used). This should be a last resort, as it does not comply with » RFC 2822."
ich nutzte bisher immer "\r\n" und fuhr gut damit. bei einem meiner webhost-acocunts ist es jedoch seit kurzem so, dass "\r\n" einen doppelten zeilenumbruch ausloest. also gerade das verhalten, was vom php-manual schlechten MTAs zugeschrieben wird (mit nur "\n" funzt's einwandfrei, wie frueher).
eine anfrage beim provider ergab: postfix sei installiert und kuerzlich aktualisiert worden. eine einstellung bzgl. der zeilenumbrueche sei nicht bekannt.
weiss darueber jemand bescheid und kann mich diesbzgl. aufklaeren?
prost
seth
hmpf, verschrieben und "title=" vergessen...
im php-manual unter mail() [...]
haette es heissen sollen.
gudn tach!
im <http://de.php.net/manual/en/function.mail.php@php-maual unter mail()> steht zum optionalen parameter additional_headers:
"Multiple extra headers should be separated with a CRLF (\r\n)."
und
"Note: If messages are not received, try using a LF (\n) only. Some poor quality Unix mail transfer agents replace LF by CRLF automatically (which leads to doubling CR if CRLF is used). This should be a last resort, as it does not comply with » RFC 2822."
So, jetzt man eigentlich mal kurz einen Blick auf RFC 2822 werfen, um das Gedaechtnis aufzufrischen.
Da CR/LF aber eher DOS/Windows-typisch ist, wuerde ich vermuten, dass im RFC nur das LF steht... (bin gerade zu faul, dies zu verifizieren, ich gebe es zu).
ich nutzte bisher immer "\r\n" und fuhr gut damit. bei einem meiner webhost-acocunts ist es jedoch seit kurzem so, dass "\r\n" einen doppelten zeilenumbruch ausloest. also gerade das verhalten, was vom php-manual schlechten MTAs zugeschrieben wird (mit nur "\n" funzt's einwandfrei, wie frueher).
eine anfrage beim provider ergab: postfix sei installiert und kuerzlich aktualisiert worden. eine einstellung bzgl. der zeilenumbrueche sei nicht bekannt.weiss darueber jemand bescheid und kann mich diesbzgl. aufklaeren?
Hatte ich neulich bei einer Systemumstellung auch. Da wurden allerdings CR/LF im Mailbody zu doppelten Umbruechen bzw. Leerzeilen.
Nick
gudn tach!
So, jetzt man eigentlich mal kurz einen Blick auf RFC 2822 werfen, um das Gedaechtnis aufzufrischen.
Da CR/LF aber eher DOS/Windows-typisch ist, wuerde ich vermuten, dass im RFC nur das LF steht... (bin gerade zu faul, dies zu verifizieren, ich gebe es zu).
nee, nee. CRLF ist schon richtig.
http://www.faqs.org/rfcs/rfc2822
abschnitt, der anfaengt mit "Messages are divided into lines of characters."
aber wie hilft mir das jetzt weiter?
prost
seth
gudn tach!
So, jetzt sollte man eigentlich mal kurz einen Blick auf RFC 2822 werfen, um das Gedaechtnis aufzufrischen.
Da CR/LF aber eher DOS/Windows-typisch ist, wuerde ich vermuten, dass im RFC nur das LF steht... (bin gerade zu faul, dies zu verifizieren, ich gebe es zu).
nee, nee. CRLF ist schon richtig.
http://www.faqs.org/rfcs/rfc2822
abschnitt, der anfaengt mit "Messages are divided into lines of characters."
aber wie hilft mir das jetzt weiter?
Okay, stimmt...
A line is a series of characters that is delimited with the two characters carriage-return and line-feed; that is, the carriage return (CR) character (ASCII value 13) followed immediately by the line feed (LF) character (ASCII value 10).
Da ist dann wirklich die Frage, warum einige MTAs damit nicht klarkommen...
Die Frage ist dann ggf., ob irgendein MTA mit nur dem LF nicht klar kommt...!?!
Nick
Hi!
"Multiple extra headers should be separated with a CRLF (\r\n)."
Ja. So schreibt es das RFC vor: CRLF ist korrekt.
ich nutzte bisher immer "\r\n" und fuhr gut damit. bei einem meiner webhost-acocunts ist es jedoch seit kurzem so, dass "\r\n" einen doppelten zeilenumbruch ausloest.
Ja, das Problem ist bekannt. Da wird scheinbar eine Ersetzung durchgeführt.
http://www.bitleap.com/blog/2007/05/16/php-mail-and-crlf-terminated-header-lines/
http://listi.jpberlin.de/pipermail/postfixbuch-users/2005-October/020298.html
Ich wollte das eigentlich schon seit längerem mal testen, weil ich mir noch immer nicht wirklich sicher bin, wer dort das zusätzliche CR einfügt: PHP oder postfix.
Aber irgendwie bin nicht nie dazu gekommen, das mal zu testen.
Schöner Gruß,
rob