![]() Technikerschule Nördlingen |
Programmierung dynamischer Internetseiten
|
![]() |
E-Mail versenden Sofern auf dem System ein Mailsystem wie zum Beispiel Sendmail installiert ist, lassen sich via PHP einfach Mails verschicken. Auf Linux-Systemen ist dies standardmäßig der Fall. Unter Windows besteht die Möglichkeit, in der php.ini den SMTP-Server eines Internet-Providers einzutragen. (Soll unter T-online eine eigene Domain im From-/Reply-To-Header erscheinen, ist der Server mit dem Namen "smtprelay.t-online.de" zu verwenden. Der Zugang muss allerdings durch eine Anmeldung über die T-Online-Homepage freigeschaltet werden). Die Funktion mail():
Beachten Sie, dass weitere Header-Informationen, die hinter dem Nachrichtentext aufgeführt werden, in einen String geschrieben werden müssen. Die einzelnen Zeilen des Headers werden durch \r\n (Carriage return, Newline) getrennt. Viele Unix/Linux-Mailer erwarten lediglich ein \n (Newline). Tipp: Wenn Sie es mit einem Linux-Server zu tun haben, probieren Sie es zunächst mit \n unter Windows mit \r\n. Wenn die Mail erfolgreich verschickt wurde, gibt mail() den Wert 1 zurück. Über die Abfrage nach dem Wert von $ok lässt sich der erolgreiche Versand der Mail kontrollieren.
Die Nachricht selbst erzeugen Sie, indem Sie den Text an eine Variable übergeben. Dieser Text kann selbst Variablen enthalten, um zum Beispiel die Ergebnisse einer Formularabfrage oder eine personalisierte Anrede zu übermitteln. Denken Sie dabei daran, dass Strings mit einem "." verbunden werden. Ein Beispiel:
Die \n\n werden verwendet um nach einem Absatz eine Leerzeile hinzuzufügen. Die Variable $text kann zum Beispiel aus einem Formular-Textfeld stammen. Mit Hilfe der Datei-Funktionen (Sie werden in Lektion 8 näher beschrieben) lassen sich auch vorgefertigte Textdateien importieren. In dem unten stehenden Beispiel erzeugt die file()-Funktion einen Array. Dabei wird jede Zeile der Datei mustertext.txt ein Element dieses Arrays. Da wir zum Mailversand aber keinen Array, sondern einen String brauchen, wird dieser Array sofort mit der Funktion implode() in einem String mit der Bezeichnung $nachricht eingelesen.
Jetzt haben wir den Inhalt der Textdatei in einem String und können ihn verschicken.
Beim Versenden von Serienmails gehört die persönliche Anrede zum guten Ton. Ich füge dazu in meinen Mailtext Platzhalter ein, in die später die individuellen Daten eingelesen werden. Realisiert wird dies mit der einfachen "suche/tausche"-Funktion str_replace($suchstring,$tauschstring,$zu_durchsuchender_string). Ihr Mailtext in der oben erwähnten Datei "mustertext.txt" könnte zum Beispiel so aussehen.
Über ein Formular oder als Ergebnis einer Datenbankabfrage erhalten wir die gewünschten Daten des Empfängers. In unserem Beispiel sind sie in den Variablen $vorname und $nachname abgelegt. Wie oben beschrieben, wird die Datei "mustertext.txt" in die Variable $nachricht eingelesen. Anschließend werden die Platzhalter gegen den Inhalt der Variablen $vorname und $nachname ausgetauscht.
Jetzt hat jede Nachricht Ihre individuelle Anrede.
|
||||||||||||||||||||||
|