Kermit: UTF-8 wird bei einigen eMail-clienten nicht angezeigt

Beitrag lesen

ps. wie muss man eigentlich den Subject kodieren, denn der kommt auch bei mir etwas kryptisch an

=?Zeichensatz?Kodierung?Text?=

Zeichensatz ist zum Beispiel ISO-8859-1, Kodierung ist entweder Q für quoted-printable oder B für base64. Im Detail ist das alles festgelegt in RFC 2047.

Zur Kodierung ist quoted-printable vorzuziehen, weil da im Gegensatz zu base64 der größte Teil auch im kodierten Zustand noch lesbar ist.

Du solltest versuchen, den Zeichensatz in der Reihenfolge ASCII, ISO-8859-1 (NICHT mit Windows-1252 verwechseln), UTF-8 auszuwählen, damit erhältst du größtmögliche Kompatibilität. UTF-8 braucht man im Deutschen meist nur, wenn das Eurozeichen im Spiel ist, weshalb das Bestehen auf UTF-8 in jeder Lebenslage mehr mit Ideologie als mit Zwang zu tun hat. Das gilt auch und gerade für dein Problem mit dem Mailinhalt. Mit der iconv-Funktion müsste sich in PHP sehr leicht feststellen lassen, welcher kleinste gemeinsame Nenner passt:

if (($ausgabe = iconv("UTF-8", "US-ASCII", $eingabe)) !== false) { $charset = "US-ASCII"; }
else if (($ausgabe = iconv("UTF-8", "ISO-8859-1", $eingabe)) !== false) { $charset = "ISO-8859-1"; }
else { $ausgabe = $eingabe; $charset = "UTF-8"; }
mail($to, $subject, $ausgabe, "MIME-etc\r\nContent-Type: text/plain; charset=" . $charset);