Mail versenden mit PHP (advanced)
Dieses Tutorial basiert auf dem „Mail versenden mit PHP“-Tutorial basic und soll den Versand an BCC- und CC-Empfängern erklären. Außerdem werden zusätzliche Kopfangaben wie Absender, Antwortadresse oder Angabe einer Zieladresse für Fehler beim Mailversand angesprochen.
Wie im Tutorial Basic zu lesen erwartet die Funktionen mindestens drei Parameter. Optional können nun allerdings noch zwei weitere Parameter hinzugefügt werden:
- mail(empfaenger, betreff, nachricht, header, extendedparameter);
Zusätzliche Optionen
Im Parameter „header“ können viele zusätzliche Angaben getätigt werden. Wir möchten hier einmal die wichtigsten zusätzlichen Angaben vorstellen:
Absenderadresse + Name
Ist keine Absenderadresse angegeben, werden standardmäßig sehr kuriose eMailadressen wie wwwrun@domain.de oder webmailer@domain.de als Absender angegeben. Sieht zum einen sehr unprofessionell aus und verwirrt zudem auch manchen Webserver und Anwender. Um einen korrekten Absender anzugeben verwenden wir folgende Syntax:
- $optheader = „From: Vorname Nachname <test@example.com>“;
Antwortadresse
Soll der Empfänger an eine andere eMailadresse antworten als die Absenderadresse, kann diese zusätzlich angegeben werden. Die Syntax für diese Angabe:
- $optheader = „Reply-To: Name Nachname <reply@example.com>“;
CC-Empfänger
CC steht für Carbon Copy und bedeutet das die Empfänger, die über diese Option angegen werden, eine Kopie der eMail erhalten und als Kopie-Empfänger auch angezeigt werden. Wie bei „normalen“ Empfängern können auch hier mehrere Empfänger mit einem Komma getrennt angegeben werden. CC-Empfänger werden wie folgt angegeben:
- $optheader = „CC: Name Nachname <copy@example.com>“;
BCC-Empfänger
BCC steht für Blind Carbon Copy und bedeutet das die Empfänger, die über diese Option angegeben werden, in der eMail nicht sichtbar, eben blind oder unsichtbar, sind, dennoch eine Kopie der eMail erhalten. Sie werden weder im Mail-Header noch in der einfachen Empfänger-Liste angezeigt. Wie bei „normalen“ Empfängern können auch hier mehrere Empfänger mit einem Komma getrennt angegeben werden. BCC-Empfänger definiert man wie folgt:
- $optheader = „BCC: Name Nachname <blind@example.com>“;
Typ des eMailinhaltes
Diese Option definiert den MIME-Typ der eMail. Die gebräuchlichsten Angaben sind hier: text/html oder text/plain. Die Angabe text/html sagt der eMailanwendung das der Inhalt als HTML interpretiert werden soll. Standardmäßig eingestellt ist allerdings die Angabe text/plain, die eine eMail als ganz normalen Plain-Text anzeigt. Den Typ des eMailinhaltes gibt man wie folgt an:
- $optheader = „Content-type: text/html“;
Mehrere Optionen verwenden
Nun, in den Beispielen wurde jede Option einzelnd verwendet. Möchte man mehrere dieser Optionen kombinieren, muss man zwischen den einzelnen Angaben einen Zeilenumbruch (\n) einfügen. Am einfachsten geht das mit der Array-Implode-Methode. Man definiert die einzelnen Optionen in einem gesamten Array und fügt sie dann mit der Funktion implode zusammen.
Beispiel:
- $optheader[] = „From: Vorname Nachname <test@example.com>“;
- $optheader[] = „Reply-To: Name Nachname <reply@example.com>“;
- $header = implode(„\n“, $optheader);
Last but not Least
Mit dem fünften und letzten Parameter können Kommandos an das eMailversand-Programm gesendet werden. Der häufig genutzte und für Newsletteranwendungen interessante Parameter ist „-f“. In Kombination mit einer eMailadresse kann festgelegt werden, wohin Fehlermeldungen der Empfänger-Adressen gesendet werden sollen. Beispiel: Ist ein eMailkonto nicht vorhanden, versenden die Zielserver meist eine Fehlermail mit dem Hinweis das diese eMail nicht zugestellt werden konnte. Diese eMail wird dann auf die angegebene Adresse geleitet und kann vom Webmaster analysiert werden um ggf. die eMailadresse aus dem Newsletterverteiler zu löschen.
Die Syntax zu diesem Befehl ist wie folgt:
- $extheader = „-ferror@example.com“;
Hinweis: Dies ist kein Rechtschreibfehler! Die eMailadresse steht direkt hinter dem Parameter „-f“!
Zusammenfassung
Als krönenden Abschluss versenden wir nun eine eMail mit verschiedenen Optionen und Parametern und schließen damit unsere „Mail versenden mit PHP“-Tutorial-Reihe ab.
- $empfaenger = „Vorname <vorname@example.com>“;
- $betreff = „Das ist ein Test“;
- $nachricht = „Hallo Vorname, wie geht es Dir?\n\nViele Grüße, Dein Freund“;
- $bccarray = array(„blind@example.com“, „bcc@example.com“);
- $bccempfaenger = implode(„,“, $bccarray);
- $optheader[] = „From: Vorname Nachname <test@example.com>“;
- $optheader[] = „Reply-To: Name Nachname <reply@example.com“;
- $optheader[] = „BCC: „.$bccempfaenger;
- $header = implode(„\n“, $optheader);
- $extheader = „-ferror@example.com“;
- mail($empfaenger, $betreff, $nachricht, $header, $extheader);
zahlreiche weitere Tutorials auf tutorial-resource.de