E-Mails mit PHP versenden
Die E-Mail Funktion von PHP ist sehr praktisch, denn damit können wir Formulardaten versenden lassen oder ganze Newsletter-Scripts erstellen. Man kann dieses Verfahren auch für ein Gästebuch benutzen, z.B. das man eine Mail erhält, wenn sich jemand in das Gästebuch einträgt.
Wichtig
Wenn ihr diese Funktion auf eurem Computer ausführt, erhaltet ihr normalerweise eine Fehlermeldung:
Warning: mail():...
Dies kommt, weil euer lokaler Server keine E-Mails verschicken kann. Die Fehlermeldung könnt ihr ignorieren, denn auf dem echtem Server sollte sie eigentlich nicht mehr auftreten.
Mit der PHP-Funktion mail() könnt Ihr die Mails verschicken, der Befehl sieht so aus:
1 2 3 |
Es ist sinnvoll die einzelnen Texte in Variablen zu speichern, damit man die Übersicht behält.
So lassen sich aber nur Text E-Mails verschicken, HTML E-Mails sind etwas komplizierter (siehe unten).
Eine fertige PHP Mail Funktion würde so aussehen:
1 2 3 4 5 6 7 8 |
<?php $betreff = "Die Mail-Funktion"; $text = "Hier lernt Ihr, wie man mit PHP Mails verschickt"; mail($empfaenger, $betreff, $text, $from); ?> |
So wird eine Mail von [email protected] an [email protected] verschickt.
Wenn euer Server richtig eingestellt ist, sollte die E-Mail sofort ankommen.
Natürlich könnt Ihr die Texte auch von einem Formular abfragen.
Die Mail wird so verschickt wie es im Quelltext des Scripts steht. Wenn Ihr z.B. ein ü durch ü (HTML Code für ein ü) ersetzen lasst, so steht es später in der Mail: ü. Denn dort werden dann nicht die Umlaute angezeigt, sondern der HTML-Code dafür (bei Text Emails).
Außerdem dürft Ihr keine HTML-Befehle benutzen, wenn z.B. in der E-Mail steht, so wird das nicht in einen Zeilenumbruch verwandelt, sondern in der Mail steht dann .
Für Zeilenumbrüche reicht ein einfaches Enter im Quelltext bzw. ein \n. Um etwas Einzurücken, müsst ihr Tab bzw. Space benutzen.
HTML-Emails
Man kann mit PHP auch HTML-Emails verschicken. Aber ihr solltet wissen, das nicht alle E-Mail Programme und E-Mail Anbieter diese HTML-Emails richtig anzeigen. Ebenfalls zeigen nicht alle E-Mail Programme und Anbieter auch alle HTML-Befehle an, viele Anbieter lassen nur ganz gewisse Befehle zu um ihre Besucher vor schadhaften E-Mails zu schützen.
Damit PHP HTML-Emails verschicken kann, müsst ihr die $from Variable etwas verändern.
1 2 3 4 5 6 7 8 9 10 11 |
<?php $betreff = "Die Mail-Funktion"; $from .= "Content-Type: text/html\r\n"; $text = "Hier lernt Ihr, wie man mit <b>PHP</b> Mails verschickt"; mail($empfaenger, $betreff, $text, $from); ?> |
Die Variable $from wird einfach ergänzt, aber achtet darauf, das nach dem Absender noch ein \r\n stehen muss.
Außerdem haben wir noch eine Reply (Antwort) Adresse angegeben.
Bei dem Text müssen wir aufpassen, dass wir die Anführungszeichen " durch ein Backslash (\) maskieren müssen.
Beispiel 2:
1 2 3 |
<?php $text = "Hier lernt Ihr, wie man mit <strong>PHP</strong> Mails verschickt"; ?> |
Der Text der Nachricht muss in dem Fall mittels HTML formatiert werden! Hier reicht für ein Zeilenumbruch kein Enter mehr, sondern man muss <br /> benutzen.
Autor: Nils Reimers