Die in den Headern Content-Type und Content-Type-Encoding angegebenen Kodierungsformen gelten ausschließlich für den Inhalt der Mail (message-body). Auf Umlaute im Betreff und in den Header-Angaben wirken sich diese Angaben – je nach benutztem Mail-Client – nicht aus.
<?php // Adresse des Mail-Empfängers $to = "Empfaenger <empfaenger@domainname.de>"; // eMail-Adresse die angibt von wem die Mail versendet wurde $from = "Absender <absender@domainname.de>"; // Zusätzliche eMail-Header an die Mail anhängen $headers = "From: $from\r\n" . // Version des verwendeten Mime-Standards "MIME-Version: 1.0\r\n" . // Zeichensatz, in dem die Mail kodiert ist (ISO-8859-1, UTF-8...) "Content-Type: text/plain; charset=\"ISO-8859-1\"\r\n" . // Header zur Kodierung der Mail Content-Transfer-Encoding // 7bit/8bit - Einzelne Zeichen werden mit 7 bzw. 8 Bit kodiert // base64 - Kodierung von binären Daten (z.B. für Anhänge) // quoted-printable - Kodierung Text mit Sonderzeichen durch die Sequenz // '=Hexadezimalwert des Zeichens' (Beispielsweise =FC für das Zeichen ü) // Also Quoted-Printable, da hier nur Text verschickt wird. "Content-Transfer-Encoding: quoted-printable\r\n"; // Betreffzeile für die Mail $subject = "Vielen Dank für Ihre Registrierung!"; // Inhalt der eMail $message_body = "Sie haben sich bei uns als Benutzer registriert..."; // Mail mit definierten Headers versenden mail ($to, $subject, $message_body, $headers); ?>
Aufgrund der Tatsache dass Empfänger, Nachrichtenheader und Subject mit 7-Bit kodiert werden, müssen Sonderzeichen und Umlaute hier als Quoted-Printable oder in Base64-Kodierung angegeben werden. Da im Header einer Mail und im Subject normalerweise keine binären Zeichen enthalten sind, sollte hier die Quoted-Printable-Kodierung verwendet werden.
<?php // Kodierung der eMail-Adresse des Empfängers mit Quoted-Printable // Der Mail-Client nutzt den angegebenen Zeichensatz zur Darstellung // Format des kodierten Strings: =?<Zeichensatz>?<Kodierung>?<Text>?= // Als Zeichensatz wird ISO-8859-1 gewählt. // Gültige Optionen für die Kodierung: // Q - Quoted-Printable // B - Base64 $to = "=?ISO-8859-1?Q?Empf=E4nger?= <empfaenger@domainname.de>"; // oder wir überlassen die Kodierung PHP $to = imap_8bit ("Empfänger") . " <empfaenger@domainname.de>"; // eMail-Adresse des Absenders $from = "Absender <absender@domainname.de>"; // Mail-Header für die zu verschickende eMail $headers = "From: $from\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type: text/plain; charset=\"ISO-8859-1\"\r\n" . "Content-Transfer-Encoding: quoted-printable\r\n"; // Auch das Subject wird als Quoted-Printable kodiert, da Umlaute enthalten sind. $subject = "=?ISO-8859-1?Q?Neuer_Benutzer:_Alexander_M=FCller?="; // oder wieder mit PHP $subject = imap_8bit ("Neuer Benutzer: Alexander Müller"); // Der Rest wie zuvor... $message_body = "Sie haben sich bei uns als Benutzer registriert..."; mail ($to, $subject, $message_body, $headers); ?>
¬ Menu
¬ Gratis Download
¬ Tutorials
¬ Seminare
¬ Yoga
¬ Insolvenzrecht
¬ News
15.08.2008Schleifen in PHP: Die While-Schleife » mehr 13.08.2008Nutzung von Variablen unter PHP: Definition, Sichtbarkeit und vordefinierte Variablen » mehr 11.08.2008Ausgabe von Datum und Zeit mit PHP nach Konvertierung in ein String » mehr Eine vollständige News-Liste ist auf der News-Seite zugänglich.
¬ Foren
¬ Buchtipp
AJAX und PHP
Weitere PHP Bücher finden Sie unter PHP Literatur