E-Mails mit PHP erstellen: mail()
und Umlauten (äöüß)
Die Funktion mail
unter PHP erwartet verschiedene Übergabewerte.
Diese werden der Funktion mail
in der Klammer übergeben (hier über Variablen).
Folgende Werte werden erwartet:
- Empfänger-E-Mail-Adresse: in der Regel Ihre eigene
- Absender-E-Mail-Adresse: von wem wird diese E-Mail abgesendet
- Betreff: Alles, was in der Betreffzeile erscheinen soll
- Mailtext: der eigentliche Inhalt der E-Mail
- antwortan: an wen ein Replay erfolgen soll (oft identisch mit Empfänger)
Erstellen Sie folgendes Programm, wobei Sie als Empfänger Ihre eigene E-Mail-Adresse eintippen. Führen Sie das Programm aus und schauen Sie in Ihrem E-Mail-Programm nach, ob die E-Mail angekommen ist. In der Regel sollte diese 1-2 Minuten später bei Ihnen eintreffen.
<?php
$empfaenger = "empfaenger@example.com"; // Mailadresse
$absender = "absender@example.com";
$betreff = "PHP-Mail-Test";
$mailtext = "Inhalt einer Mail zum Test von PHP";
$antwortan = "antworten_an@example.com";
mail( $empfaenger,
$betreff,
$mailtext,
"From: $absender\nReply-To: $antwortan");
echo "Mail wurde gesendet!";
?>
Mail wurde gesendet!
Umlaute (deutsche Sonderzeichen) korrekt in E-Mails – öäüß mailen anstatt killen
Bei E-Mails ist das Verschwinden der deutschen Sonderzeichen ein beliebtes Problem. Die Umlaute machen sich da gerne aus dem Staub, wenn man diese nicht über den Header-Bereich extra einlädt.
Für eine Textnachricht werden folgenden Angaben benötigt:
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Allerdings sollte im Header-Bereich die Trennung der Zeilen korrekt über „\r\n“ erfolgen, sonst kommen Probleme auf einen zu.
Jetzt kann man sich natürlich Variblen-Ungetüme bauen in der Form von:
$header .= "Mime-Version: 1.0\r\n";
$header .= "Content-type: text/plain; charset=utf-8";
Da fehlt noch einiges an Angaben. Schöner ist es, über ein Array, das am Ende verbunden wird und dort dann die benötigte Trennung in Form von „\r\n“ eingebaut wird.
<?php
$empfaenger = "empfaenger@example.com"; // Mailadresse Empfaenger
$betreff = "PHP-Mail-Test mit Umlauten";
$mailtext = "Inhalt einer Mail zum Test von PHP ";
$mailtext .= "mit den deutschen Sonderzeichen öäüß";
$absender = "Ich Hier <absender@example.com>";
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=utf-8";
$headers[] = "From: {$absender}";
// falls Bcc benötigt wird
$headers[] = "Bcc: Der Da <mitleser@example.com>";
$headers[] = "Reply-To: {$absender}";
$headers[] = "Subject: {$betreff}";
$headers[] = "X-Mailer: PHP/".phpversion();
mail($empfaenger, $betreff, $mailtext,implode("\r\n",$headers));
echo "E-Mail mit Umlauten wurde gesendet!";
?>
Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).
Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button: