Kurz erklärt: Umlaute in Emails mit der PHP-Funktion mail()

Posted by GSL-Team - 19. April 2013 - Kurz erklärt - 1 Comment

Die PHP-Funktion  mail() ist eine einfach zu nutzende Möglichkeit, ohne irgendwelche Zusatzmodule eine Email aus PHP heraus zu versenden, was auch von Entwicklern häufig genutzt wird.

Wenn Sie schon erste Versuche mit mail() gemacht haben, werden Sie aber festgestellt haben, dass deutsche Sonderzeichen, beispielsweise Umlaute wie Ä, Ö, Ü, ä, ö, ü, ß beim Empfänger nicht sauber ankommen und stattdessen andere Sonderzeichen angezeigt werden.

Das liegt daran, dass der normalerweise vom eMail-Protokoll SMTP verwendete ASCII-Zeichensatzder diese Zeichen nicht unterstützt.

Die Lösung ist einfach, man muss dem empfangenden Emailprogramm sagen, wie der Zeichensatz zu dekodieren ist. Der dazu nötige Header lautet:

“Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable”

Das macht man mit mail() folgendermaßen:

<?php
mail (“name@empfaenger.de”,”Betreff”,”Inhalt”,”Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable” );
?>

Natürlich kann man auch mit einem anderen Characterset wie „UTF-8“ statt „ISO-8859-1“ arbeiten.

 

One comment

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kommentarlinks könnten nofollow frei sein.