E-Mails mit PHP erstellen

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-Quellcode: E-Mail per PHP versenden
<?php
$empfaenger = "duda@versuchsratte.de"; // Mailadresse
$absender   = "ich@versuchsratte.de";
$betreff    = "PHP-Mail-Test";
$mailtext   = "Inhalt einer Mail zum Test von PHP";
$antwortan  = "ich@versuchsratte.de";
 
mail( $empfaenger,
      $betreff,
      $mailtext,
      "From: $absender\nReply-To: $antwortan");
 
echo "Mail wurde gesendet!";
?>
Feedback zum E-Mail versenden über PHP

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-Quellcode: E-Mail mit deutschen Sonderzeichen öäüß über PHP versenden
<?php
$empfaenger = "duda@versuchsratte.de"; // Mailadresse Empfaenger
$betreff    = "PHP-Mail-Test mit Umlauten";
$mailtext   = "Inhalt einer Mail zum Test von PHP ";
$mailtext   .= "mit den deutschen Sonderzeichen öäüß";
$absender   = "Ich Hier ";

$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 ";
$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!";
?>