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