E-Mailversand
Matze
- php
0 Henk Strobel0 Der Martin0 Henk Strobel0 Matze
Guten Abend!
Ich versuche folgende E-Mail per mail() zu verschicken:
$mailtxt = ('Hallo');
$empfanger1 = meine Mailadresse;
$empfanger2 = deine Mailadresse;
$betreff = "Testmail";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "From:Mailrobot <eine andere Mailadresse>\r\n";
mail($empfanger1, $betreff, $mailtxt, $headers);
mail($empfanger2, $betreff, $mailtxt, $headers);
Nachdem die Mail dann bei meinem Yahoo-Konto angekommen ist,
steht dort (im Thunderbird) auch nur "Hallo" und als Absender
"Mailrobot" mit der Adresse dahinter.
Wenn ich die Mail jetzt aber an eine Adresse meiner Domain schicke,
kommt sie so an:
"Content-type: text/plain; charset=iso-8859-1
From: Mailrobot <eine andere Mailadresse>
Hallo"
Der Absender fehlt dabei völlig.
Kann mir bitte jemand sagen was ich falsch mache und ändern muss,
damit "überall" reiner Text ankommt?
Danke!
Matze
Hallo,
Vermutung: Kann es sein, das Dein Unix(?)-Server die Zeichenfolge "\r\n" als doppelten Zeilenumbruch interpretiert?
Das würde erklären, warum er nach "MIME-Version: 1.0\r\n" den Header für beendet erklärt und den Rest in den Body schreibt. Versuch doch mal "\n".
< http://forum.de.selfhtml.org/archiv/2002/5/t12155/#m67357>
Und: "From:Mailrobot" muss heissen "From: Mailrobot".
Viele Grüße
Henk Strobel
Hallo Henk,
Vermutung: Kann es sein, das Dein Unix(?)-Server die Zeichenfolge "\r\n" als doppelten Zeilenumbruch interpretiert?
[...]
Und: "From:Mailrobot" muss heissen "From: Mailrobot".
ist mir beides auch schon aufgefallen. Aber das mit dem Zeilenumbruch ist eigentlich korrekt, im entsprechenden RFC (zu faul zum Raussuchen) wird als Zeilenumbruch CR und LF definiert, also \r und \n. Ich hatte Matze sogar so verstanden, dass das Script beide Male auf demselben Server läuft und das Ergebnis nur abhängig vom Empfänger anders aussieht.
Da sein Code bis auf das fehlende Leerzeichen, das du auch bemerkt hast, formal korrekt ist, war ich ratlos.
Das würde erklären, warum er nach "MIME-Version: 1.0\r\n" den Header für beendet erklärt und den Rest in den Body schreibt. Versuch doch mal "\n".
Einen Versuch wär's wert - aber das birgt das Risiko, dass es dann mit der Mehrheit anderer, korrekt arbeitender MTAs nicht mehr funktioniert.
Schönen Sonntag noch,
Martin
Hallo Martin,
aber das birgt das Risiko, dass es dann mit der Mehrheit anderer, korrekt arbeitender MTAs nicht mehr funktioniert.
Tja, das könnte theoretisch passieren. Auch das PHP Manual empfiehlt \r\n. Ich benutze in meinen Skripts allerdings seit Jahr und Tag nur \n und das gab bisher keine Probleme.
Viele Grüße
Henk Strobel
Hallo,
Ich habe jetzt die "\r" entfernt und das vergessene Leerzeichen hinzugefügt.
Und siehe da, jetzt kommen die Mails korrekt an.
Danke! Wieder was dazu gelernt.
Grüße, Matze