PHP Mail Headers - eMails mit Header-Informationen

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);
?>

Sonderzeichen / Umlaute in Header oder Subject von Mails

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);
?>

« zurück zu Seite 1 2 3 weiter zu Seite 5 6 7 »

AltStyle によって変換されたページ (->オリジナル) /