PHP 5.4 & MySQL 5.6 Grundkurs

Mails versenden mit PHP

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Sie möchten, dass die Daten, die in ein Kontaktformular eingetragen sind, zusätzlich per E-Mail versendet werden? Kein Problem. Das können Sie entweder über die Funktion "mail()" oder über den PHPMailer machen.

Transkript

Häufig sollen die Formulardaten per E-Mail versendet werden. Das geht zum einen über die interne Mailfunktion von PHP direkt oder noch komfortabler über die Klasse PHP Mailer. Schauen wir uns erst einmal die interne Mailfunktion von PHP an. Es gibt eine Funktion in PHP mit dem passenden Namen mail, und die gibt dann wahr oder falsch zurück, je nachdem ob es geklappt hat. Und der übergeben Sie einfach die gewünschten Parameter. Als ersten Parameter sagen Sie, an wen soll das Ganze gesendet werden, dann geben Sie den Betreff der E-Mail an und dann den eigentlichen Text. Schauenw wir mal ein einfaches Beispiel hier an, wie das funktioniert. Ein einfaches Beispiel schaut so aus. Eine E-Mail versenden Sie hier, geben Sie an, an wen soll das gehen, die E-Mail Adresse, dann den Betreff der E-Mail und dann die eigentliche Nachricht. Bei Bedarf können Sie dann noch zusätzliche header angeben, als vierten Parameter von dieser mail. Zum Beispiel solche header wie die Absenderadresse der E-Mail. Sie können auch bei Reply To eine alternative Antwort Adresse angeben etc. Wichtig ist jetzt folgendes. Wenn Sie Daten aus Formularen versenden, dann ist es verlockend, wenn Ihnen ein Benutzer schreibt, dass Sie hier bei From, seine angegebene E-Mail Adresse angeben. Also hier direkt die Variable, die Sie aus dem Formular gewinnen. Das ist aber ziemlich riskant aus sicherheitstechnischen Gründen, weil das könnte jemand so manipulieren, dass er dann Ihr Formular als Spamschleuder verwendet. Deswegen, wenn Sie so etwas machen wollen, sollten Sie unbedingt die E-Mail Adresse prüfen, beispielsweise mit der Filtererweiterung. Also das Mail Versenden mit PHP geht prinzipiell sehr, sehr einfach. Es gibt eine Einschränkung, es gibt ein aber, und zwar, wenn Sie xampp so zu Hause installiert haben, dann ist das mühsam, weil dann erstmal mail auf diese Art nicht funktioniert. Es gibt natürlich Möglichkeiten, dass man dieses lokale xampp auch dazubringt, dass es einen die Mails versendet, aber ich finde, dass sich dieser Aufwand nicht lohnt, weil im Normalfall brauchen Sie das nicht. Xampp ist für Tests gut, aber Sie werden es ja nichts als echten Server verwenden. Wenn Sie hingegen Ihre Internetpräsenz irgendwo haben, bei irgendeinem Provider, dann ist es kein Problem, da Mails zu versenden. Sollte es da irgendwelche Besonderheiten geben, dann finden Sie in der FAQ des Providers auf jeden Fall Informationen dazu. Es gibt jetzt eine Alternative zu dieser Mailfunktion von PHP und das ist die Klasse PHPMailer, die Sie sich hier herunterladen können. Hier PHPMailer für PHP5 oder 6, und hier können Sie's dann gezippt, beispielsweise herunterladen. Sie finden dann auf der Webseite hier vom PHPMailer auch viele Beispiele, wie Sie das Ganze verwenden, und wir wollen uns einmal ein Beispiel anschauen. Hier sehen Sie ein Beispiel für die Verwendung dieses PHPMailers. Erst einmal müssen Sie die benötigten Dateien hierfür einbinden. Das hier macht require_once. Das heißt, bei dieser Zeile müssen Sie natürlich schauen, dass es wirklich auf die heruntergeladene class Datei hier auch passt. Dann erstellen Sie hier eine neue Instanz des PHPMailers. Können den Mailtext und die E-Mail Adresse des Adressaten setzen. Außerdem können Sie hier auch direkt den Zeichensatz angeben. Ich würde Ihnen hier utf-8 empfehlen. Dann können Sie sagen, dass SMTP dieses Mail Protokoll verwendet werden soll, und dann geben Sie jetzt die Zugangsdaten an, die Sie auch sonst benutzt haben, als Sie Ihre eigene E-Mail bei Ihrem E-Mail Account eingerichtet haben. Also den SMTP Server beispielsweise und hier dann den Benutzernamen und das Passwort. Und hier können Sie angeben von wo aus wird die E-Mail versendet. Dann wird hier der Betreff gesetzt und Sie definieren den body, und dann können Sie das einfach aufrufen über mail Send. Und wenn es nicht klappt erhalten Sie hier eine Fehlermeldung. Das ist wesentlich zuverlässig meiner Erfahrung nach, als diese interne Mailfunktion, die bei einzelnen Provider auch manchmal bisschen Probleme macht. Das andere schöne an PHPMailer ist, dass Sie auf ähnlich einfache Art auch HTML Mails versenden können. HTML Mails sind nicht bei allen Leuten beliebt, aber manchmal wollen Kunden HTML Mails, und die selber zu erstellen ist ein bisschen mühsam. Einfacher geht das hier mit diesem PHPMailer. Da können Sie einfach hier den HTML Code angeben, und dann das ganz einfach versenden lassen. Können dann Ihre E-Mail auch mit Bildern und anderen Formatierungen versehen. Beispiele für den HTML Versand und für die anderen Optionen finden Sie hier auch auf der Webseite von PHPMailer, und werden dann sehen, dass es wirklich sehr viel schöne Möglichkeiten gibt. Also Formulardaten zu versenden ist mit dem PHPMailer erstaunlich einfach. Testen Sie es am besten selber mal aus.

PHP 5.4 & MySQL 5.6 Grundkurs

Steigen Sie auch ohne Vorwissen in die Programmierung PHP- & MySQL-basierter Webseiten ein und lernen Sie die Sprachgrundlagen wie Bedingungen, Schleifen, Funktionen usw. kennen.

7 Std. 9 min (86 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!