PHP - eMails mit deutschen Sonderzeichen (Umlaute)

Mit dem PHP-Befehl mail lassen sich sehr einfach eMails durch den der Server verschicken ohne ein eMail-Programm zu verwenden. Damit lassen sich interessante Funktionen wie Weiterempfehlung, Kontaktformular, Mailingliste u. ä. programmieren.

Wer bereits erste Experimente mit mail gemacht, wird jedoch feststellen, daß deutsche Sonderzeichen, insb. Umlaute wie "ä,ö,ü,ß" usw. beim Empfänger nicht richtig ankommen und stattdessen andere Sonderzeichen erscheinen. Das liegt am ASCII-Zeichensatz, der vom eMail-Protokoll SMTP normalerweise verwendet wird und in dem diese Zeichen nicht vorgesehen sind.

Das Problem läßt sich jedoch leicht beheben, indem per mail ein spezieller Header mitversandt wird, der dem eMail-Programm des Empfängers mitteilt, wie die eMail zu dekodieren ist.

Dazu muß im Headerbereich des mail-Befehls einfach der folgenden Text eingefügt werden:
"Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable"

<?php

mail ("name@empfaenger.de",

"Betreffzeile",

"Nachricht",

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

?>

Ergebnis:

Durch diesen Header verwendet das eMail-Programm automatisch "quoted printable" zur Dekodierung; damit werden alle deutschen (und auch andere landesspezifische) Sonderzeichen korrekt angezeigt.

zurück: Mehr PHP-Tipps & Tricks

Ergänzung? Fehler? Schreib uns an team@phpbox.de
Du findest phpbox.de nützlich? Wir freuen uns über einen Link auf phpbox.de

Einstieg in PHP 8 und MySQL
PHP Buch