PHP Mailversand
Aus aktuellem Anlass schreibe ich einen Artikel zum Thema PHP und Mails. Im Prinzip gibt es kaum etwas das so einfach ist wie der PHP Mailversand. PHP bietet zur Versandung von Mails eine nette kleine Funktion an mail(). Ich zeige euch wie ihr diese Funktion benutzt und eine gut Alternative dazu.
PHP Mailversand
Es gibt viele Möglichkeiten in PHP Mails zu senden. In den meisten Fällen werden die Mails direkt vom Server gesendet, von dem aus auch das PHP Skript läuft. Vorraussetzung für de PHP Mailversand ist ein korrekt konfigurierter Mailserver. Für einfache Webspaces trifft das eigentlich immer zu.
Einfacher PHP Mailversand
Mit der mail() Funktion kann man schnell und einfach Mails versenden. Man muss eigentlich nur die Parameter richtig setzen:
- Empfänger E-Mail
- Betreff
- Nachricht
Als 4 und optionalen Parameter kann man noch Headerinformationen angeben. Ein einfaches Beispiel:
mail("emailadresse@domain.com", "Das ist der Betreff", "Das ist der Nachrichtentext");
Fortgeschrittener PHP Mailversand
Mit ein wenig Hintergrundwissen kann man etwas mehr aus der mail() Funktion herausholen. Wenn man die Header richtig setzt, kann man mehrere Dinge ändern:
- Codierung (zum Beispiel UTF-8)
- HTML Mails statt reine Text Mails
Hier wird an einem Beispiel gezeigt wie man eine HTML Mail versenden kann. HTML Mails bieten den Vorteil, dass man bei der Gestaltung viel mehr Möglichkeiten hat und auch Bilder, Farben und Formen einbauen kann. Neben den gestalterischen Möglichkeiten kann man vor allem mit Tracking Pixel prüfen wie viele der versendeten Mails auch gelesen wurden. Über getrackte Links kann man sogar feststellen von welcher Mail Adresse aus diese geklickt wurden.
Das Versenden von HTML Mails ist aber etwas problematisch. Nicht nur, dass manche Mail Clienten diese nicht anzeigen können. Das größere Problem ist, dass manche Server HTML e-Mails mit der PHP mail() Funktion einfach nicht richtig versenden. Es gibt Server die schicken solche Mails gar nicht ab, andere schicken diese schon ab, verändern aber den Text, so dass beim Mailclienten zwar eine Mail ankommt, diese jedoch nicht als HTML dargestellt werden kann. Abhilfe schafft hier eine eigene Mailklasse.
PHPMailer
Die PHPMailer Bibliothek erspart einem Programmierer viel Arbeit. Ich kann mir mittlerweile gar nicht mehr vorstellen Mails ohne diese Bibliothek zu verschicken. Ein sehr gutes Tutorial dazu ist hier zu finden.
Fazit
PHP bietet unterschiedlichste Möglichkeiten um Emails zu versenden. Die mail() Funktion kann sehr einfach benutzt werden um einfach Mails, beispielsweise um Fehlerberichte an den Administrator zu senden. Andererseits kann die mail() Funktion mehr, so dass man sie auch für HTML Mails verwenden kann. Wer es lieber einfach hat der kann andere PHP Bibliotheken wie den PHPMailer benutzen.
Wer hat ähnliche Erfahrungen gemacht? Welche andere Möglichkeiten von PHP aus Mails zu versenden gibt es noch? Welche Nachteile hat PHPMailer?