Guten Tag,
Ich versuche momentan eine Mail-Funktion zu programmieren und es klappt an sich alles ganz gut. Doch leider werden die Umlaute in einem Betreff nicht korrekt dargestellt, wenn ich sie verschicke.
Alle PHP Dateien sind in UTF-8 kodiert und auch die Datenbank ist vollkommen auf UTF-8 eingestellt.
Wenn ich nun eine Mail versende, so ist das Ergebnis äußerst seltsam.
Bei manchen Anbietern werden die Umlaute sowohl im Betreff, als auch im Inhalt (Body) angezeigt.
Meine Funktion:
function mailing($to, $name, $from, $subj, $body, $bcc="") {
$subj = nl2br($subj);
$body = nl2br($body);
$recipient = $to;
if(trim($bcc) != ""){
$headers = "Bcc: ".$bcc."\r\n";
}
$headers .= "From: ".$name." \r\n";
$headers .= "Reply-To: ".$name." \r\n";
$headers .= "Return-Path: ".$from."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "Message-ID: \r\n";
mail($recipient, $subj, $body, $headers);
}
Folgende Ergebnis erziele ich damit:
Betreffzeile z.B.: „Neuer Gästebucheintrag“
Googlemail: OK
Webmailer von der FH: OK
Microsoft Office: OK
HTC Mail App: OK
Web.de: Fehlerhaft => Neuer Gästebucheintrag
Freenet: Fehlerhaft => Neuer Gästebucheintrag
Das seltsame ist aber, dass die Umlaute im Inhalt (Body) bei „ALLEN“ korrekt angezeigt werden.
Ich hab auch bereits versucht bei der $subj Variable „utf8_decode()“ anzuwenden => Ergebnis: Bei Web.de und Freenet wird nun alles perfekt angezeigt, aber bei den restlichen ist es dann fehlerhaft.
Hat vllt. jemand einen Tip? Ich versuche es schon den halben Tag und es klappt einfach nicht, dass die Umlaute bei allen korrekt angezeigt werden.
Gruß