[Postfixbuch-users] header umbrueche
Beat Jucker
beat at juckers.ch
Fr Apr 27 16:43:36 CEST 2012
Hallo Hajo
Ich habe mich nicht mit PHP und sendmail im Detail herumgeschlagen. Aber
hier meine Gedanken um das "Mysteriös" zu erhellen. In Unix bedeuten
\r = carriage return
\n = new line (linefeed) --> gleichbedeutend mit Zeilenumbruch
In Unix bedeutet also das einzelne Zeichen "\n" Zeilenumbruch, in
Windows werden dafür zwei Zeichen "\r\n" verwendet.
Wie soll ein String endend mit "\r\n" Umgesetzt werden? Wie sollen
Anwendungen ein einzelnes "\r", ein einzelnes "\n" oder Zeichen in
Kombination "\r\n" interpretieren? Es kann sein, dass Anwendungen das
einzelne Zeichen "\r" in ein "\r\n"umwandeln. Je nach OS und Anwendung
kann dies anderst interpretiert werden ... leider.
Zudem setzt sich der Email Header aus verschiedenen Header-Feldern
zusammen ("To:", "Subject" und weiteren Feldern wie "Reply-To"). Bei
einzelnen Header Feldern definierst du explizit "\r\n" und bei anderen
überlässt du es PHP. Was macht PHP am Zeilenende? Je nach OS kann es ein
"\r\n" (Windows) oder ein "\n" (Unix) sein und schon hast du "mixed
line endings".
In neueren Postfix Versionen kann anscheinend das NewLine-Verhalten
konfiguriert werden, fast wie in den guten alten TTY Zeiten mit den
Terminal Treibern ... ;-)
Aber wie gesagt, dies sind nur meine Gedanken und muss nichts mit deinem
Problem zu tun haben.
Gruss
-- Beat
>>> Am 27.04.2012 11:51, schrieb Hajo Locke:
>>>> Ich nehme hier ein simples Beispiel aus php.net:
>>>>
>>>> <?php
>>>> $to = 'ich at example.com';
>>>> $subject = 'the subject';
>>>> $message = 'hello';
>>>> $headers = 'From: webmaster at example.com' . "\r\n" .
>>>> 'Reply-To: webmaster at example.com' . "\r\n" .
>>>> 'X-Mailer: PHP/' . phpversion();
>>>>
>>>> mail($to, $subject, $message, $headers);
>>>> ?>
>>>>
>>>> Schicke ich mir diese Mail an mein lokales Postfach zu (dovecot) ist
>>>> alles ok, sende ich sie dagegen an GMX, dann scheint gmx den header
>>>> nicht zu mögen.
>>>> Das \r\n veranlasst gmx auch wirklich zu einem doppelten Umbruch
>>>> (sieht
>>>> man schön in der gmx Weboberfläche),
>>>
...
> ahh, danke, das ist ja genau mein Thema. Verschiedene Umbrüche
> innerhalb des headers würden das erklären.
> Aber die ersten Teile des Header from, subject etc. werden ja durch
> php selbst erzeugt. Ich kann auch nicht glauben dass php dort einen
> falschen Umbruch setzt und somit für "mixed line endings"
> verantwortlich ist. Mysteriös...
Mehr Informationen über die Mailingliste Postfixbuch-users