Hi!
Ich habe mich schon ewig nicht mehr mit der PHP eigenen Mailfunktion beschäftigt und mich heute wieder etwas damit herumgespielt. Dabei stehe ich vor einem Problem, das ich früher nie hatte. Hier der Code:
$S_fromName = 'Jörg Lüttermann';
$S_fromMail = 'irgendwas@example.org';
$S_toName = 'Maria Böller';
$S_toMail = 'mail@example.org';
$S_subject = 'Hier können Sie die neue Mail Nummer 1 lesen';
$S_body = "Hallo!\n\nIch hoffe, es geht Dir gut!\nWöchentliche Bäder sind gesund.\n\nLiebe Grüße\n\nHampelmann";
$S_type = 'text/plain';
$S_from = mb_encode_mimeheader($S_fromName, 'UTF-8', 'Q').' <'.$S_fromMail.'>';
$S_to = mb_encode_mimeheader($S_toName, 'UTF-8', 'Q').' <'.$S_toMail.'>';
$S_subject = mb_encode_mimeheader($S_subject, 'UTF-8', 'Q');
$S_header = "";
$S_header .= "MIME-Version: 1.0\n";
$S_header .= "Content-type: ".$S_type."; charset=UTF-8\n";
$S_header .= "Content-Transfer-Encoding: 8bit\n";
$S_header .= "From: $S_from\n";
$S_header .= "Reply-To: $S_fromMail\n";
$S_header .= "Return-Path: $S_fromMail";
$test = mail($S_to, $S_subject, $S_body, $S_header, $S_fromMail);
var_dump($test);
Das funktioniert wunderbar. Die Mail wird gesendet, kommt auch, was die Sonderzeichen betrifft, völlig korrekt an und $test ist TRUE. Soweit, sogut.
Wenn ich aber jetzt die mail-Zeile mit dem -f Flag erweitere, ändert sich das leider:
$test = mail($S_to, $S_subject, $S_body, $S_header, "-f$S_fromMail");
Da ist $test dann FALSE und die Mail wird nicht abgesendet. Ich verstehe das deshalb nicht, weil das bei meinen Versuchen vor mehreren Monaten nie ein Problem gewesen ist.
FRAGE: Kann es sein, dass mein Provider da irgendwas in den Einstellungen geändert hat in der Zwischenzeit und das -f deshalb Probleme bereitet jetzt? Oder woran kann es liegen, dass Mails wegen dem -f plötzlich nicht mehr gesendet werden? (Ich habe schon öfters gelesen, dass die Verwendung des -f deshalb gut ist, weil dann Mails weniger oft als Spam klassifiziert werden.)
Danke im Voraus!
Verzweifelnder