Jetzt anmelden...

Name
Passwort
Registrieren

PHP Blog

PHP-Kontaktformular mit PHP-Mailer erstellen

Jede Website sollte ein Kontaktformular haben, über das Kunden oder Interessierte schnell und unkompliziert mit Ihnen Kontakt aufnehmen können. Wir zeigen Ihnen, wie Sie mit der vorgefertigen PHP-Mailer-Lösung das hinbekommen.

Kommentare [0]

Stefan 03.01.2019

Infos zum Artikel

Kategorie PHP
Autor Stefan
Datum 03.01.2019

Vorgefertigte Musterlösung:

PHP Mailer einbauen

Um den PHPMailer auf Ihrer Website einzurichten, müssen Sie sich zunächst das Dateienpaket des Programms beschaffen. Sie können sich dieses hier downloaden. Nach dem Download entpacken Sie das zip-Archiv in einen Ordner namens phpmailer, der sich im Hauptverzeichnis Ihrer Website befindet.

Anschließend kopieren Sie den folgenden PHP-Code in den head-Bereich derjenigen Seite, die das Kontaktformular haben soll. Beachten Sie: Da wir ein PHP-Programm einbinden, darf der Dateityp dieser Datei nicht .html sein, sondern muss auf .php enden (z.B. kontakt.php). Diese Datei liegt im Stammverzeichnis Ihrer Website und greift auf den Unterordner des Programms zu.

<?php
if(isset($_POST['submit'])) {

$username = $_POST['username'];
$firma = $_POST['subject'];
$emailAddress = $_POST['email'];

$message = "Name: " . $_POST['username'] . " Betreff: " . $_POST['subject'] . "" . $_POST['body'];

require 'phpmailer/PHPMailerAutoload.php';

$mail = new PHPMailer();

// SMTP-Postausgang eintragen:
$mail->Host = "smtp-adresse"; // z.B. smtp.1und1.de

$mail->IsHTML(true);
$mail->SMTPAuth = true;

// Login und Passwort der Empfänger-Mail
$mail->Username = "beispiel@meineMail.de";
$mail->Password = "passwort12345";

// Verschlüsselungsprotokoll
$mail->SMTPSecure = "ssl";
$mail->Port = 465;  //oder 587

$mail->Subject = "Anfrage über Website";
$mail->Body = $message;
$mail->SetFrom($emailAddress, $username);
$mail->addAddress('beispiel@meineMail.de');

if ($mail->send())
   echo "Vielen Dank!  Nachricht erfolgreich übermittelt. ";
else{
   echo "Fehler!  Die E-Mail konnte nicht verschickt werden! ";
    }
}
?
        ?    >


Wir erstellen nun das HTML-Kontaktformular mit ein paar typischen Eingabefeldern. Kopieren Sie hierzu den folgenden HTML-Code an die gewünschte Stelle innerhalb des body-Tags auf der php-Seite:

<h1 >Kontaktformular</h1 >
<form method="post" action="kontakt.php" >

    <p >Ihr Name*</p >
    <p ><input type="text" name="username" required ></p >

    <p >Betreff</p >
    <p ><input type="text" name="subject" ></p >

    <p >E-Mail-Adresse*</p >
    <p ><input type="email" name="email" required ></p >

    <p >Ihre Nachricht*</p >
    <p ><textarea name="body" required ></textarea ></p >

    <p >
    <input type="submit" name="submit" value="Nachricht abschicken" >
    </p >

</form >

Das Ergebnis ist ein primitives Kontaktformular, ohne jede Formatierung. Es funktioniert auch noch nicht. Aber bis dahin ist es nicht mehr weit.

PHP Mailer

PHP Mailer konfigurieren

Damit das Teil nun auch zum Laufen gebracht werden kann, müssen noch einige wenige Einstellung am PHP-Code vorgenommen werden:

  • Als ersten Schritt müssen wir die Adresse des Postausgangsservers (SMTP) eintragen. Je nach Provider, der das E-Mail-Postfach hostet, ist diese unterschiedlich. Bei 1&1 lautet sie etwa smtp.1und1.de. Die entsprechende Zeile im PHP-Code (bei uns oben Zeile 15) lautet dann: $mail->Host = "smtp.1und1.de"; Eine Liste mit gängigen Providern finden Sie weiter unten.
  • An welche E-Mail soll das Kontaktformular senden? Hierzu müssen Sie Ihre E-Mail-Adresse und das dazugehörige E-Mail-Passwort eingeben (Zeile 21 u. 22):
    $mail->Username = "beispiel@meineMail.de";
    $mail->Password = "passwort12345";

    Keine Sorge: Kein Nutzer kann jemals den PHP-Code mit diesen Daten sehen!
  • Nun müssen Sie noch das Verschlüsselungsprotokoll und den Port des E-Mail-Postfachs angeben. Oftmals genügen folgende Angaben, wie sie in Zeile 25 u. 26 schon ausgefüllt sind:
    $mail->SMTPSecure = "ssl";
    $mail->Port = 465;
    Andernfalls finden Sie die entsprechenden Daten bei Ihrem Provider.
  • Schließlich geben Sie noch in Zeile 31 noch einmal die Empfänger-Mail an:
    $mail->addAddress('beispiel@meineMail.de');

Das wars! Laden Sie die PHP-Datei nun auf Ihren Webspace hoch (über lokalen Apache läuft das nicht!).

Achtung: Bei machen Providern müssen Sie zuvor die Nutzung von IMAP erst in den Einstellungen einschalten. Andernfalls wird der PHP-Mailer nicht funktionieren.

SMTP-Serverdaten einzelner Provider:

Provider Postausgangsserver (SMTP)
1&1 smtp.1und1.de
GMX mail.gmx.net
Strato smtp.strato.de
Web.de smtp.web.de
t-online securesmtp.t-online.de
Google Mail smtp.gmail.com

Weitere SMTP-Serverdaten finden Sie sehr einfach über google.

Das Formular anpassen

Die einzelnen Eingabefelder des Formulars passen Sie im HTML-Code an. w3schools bietet hierfür eine praktische Anleitung an. Vergessen Sie aber nicht, die Felder auch im PHP-Code zur Verarbeitung aufzufangen.

Kommentar schreiben

Nur angemeldete Benutzer können kommentieren.

Alle Kommentare

Es gibt bislang noch keine Kommentare zu diesem Thema.

Arrays in PHP

Arrays ermöglichen das Speichern von Daten in einer übergeordneten Datenstruktur.

Operatoren einsetzen

Es gibt eine Vielzahl an Operatoren. Wir haben eine Übersicht erstellt

Scope von Variablen

Wo ist eine Variable eigentlich sichtbar?

FALCONBYTE.NET

Handmade with 🖤️

© 2018, 2019 Stefan E. Heller

Impressum | Datenschutz

facebook programmieren lernen twitter programmieren lernen youtube programmieren lernen