Umlaute sind im E-Mail Betreff fehlerhaft

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ß

Hi,
woher kommen die Variablen?

Gruß
Ingo

Hi Ingo,
Vor dem Aufruf der Funktion wird der Betreff einer E-Mail aus der Datenbank ausgelesen. Wie bereits erwähnt ist die Datenbank komplett auf UTF-8.
Nachdem der Betreff ausgelessen wurde, wird er an die Funktion als „$subj“ weitergegeben. $body ist der Inhalt der E-Mail und wird davor aus einer Template-Datei gelesen.

Gruß

Nachdem ich nun einen ganzen Tag nach der Lösung gesucht hab, hab ich sie „ENDLICH“ gefunden :smile:
Nun läuft es auf allen Webmail-Diensten perfekt.

Für die, die evtl. auch das gleiche Problem haben, dass Umlaute in der Betreffzeile falsch dargestellt werden:
$subj = „Beispieltext ö ä ü“;
$subj = „=?utf-8?b?“.base64_encode($subj)."?=";

Gruß