03.01.19 8676 Views 6

credit: ©falconbyte.net

PHP Blog

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.

Falconbyte unterstüzen

Betrieb und Pflege von Falconbyte brauchen viel Zeit und Geld. Um dir auch weiterhin hochwertigen Content anbieten zu können, kannst du uns sehr gerne mit einem kleinen "Trinkgeld" unterstützen.

Thema in Kurzform

  • PHP Mailer runterladen: Download PHPMailer
  • Server-Daten in der Datei phpmailer_setup.php anpassen.
  • Upload auf den Webserver(!) und index.php starten.

Das Eingabeformular

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 das Hauptverzeichnis Ihres Web-Projekts.

Das Eingabeformular

Wir haben in der Datei index.php ein schlichtes Eingabeformular vorbereitet, um die Grundfunktion zu zeigen.

<?php include 'phpmailer_setup.php' ?>

<html>
<head>
    <title>E-Mail mit PHPMailer senden</title>
</head>
<body>

<h3>E-Mail mit PHPMailer senden</h3>

<form method="post" action="index.php">

    <p>
        <input type="text" name="name" placeholder="Name" class="form-control" required value=""/>
    </p>

    <p>
        <input type="text" name="email" class="form-control" placeholder="Deine Email" required value=""/>
    </p>

    <p>
        <input type="text" name="subject" class="form-control" placeholder="Betreff" required value=""/>
    </p>

    <p>
        <textarea rows="4" cols="50" name="message" class="form-control" placeholder="Nachricht eingeben"
                  required></textarea>
    </p>

    <p>
        <input type="submit" name="submit" value="Submit" class="btn btn-info"/>
    </p>

</form>

</body>
</html>

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

Um den PHP-Mailer zu konfigurieren, bearbeiten wir die Datei phpmailer_setup.php und tragen unsere Mail-Server-Informationen ein. Die entsprechenden Daten finden wir beim Provider.

<?php

if(isset($_POST["submit"]))
{
    require 'class/class.phpmailer.php';
    $mail = new PHPMailer;
    $mail->IsSMTP();        //Sets Mailer to send message using SMTP
    $mail->Host = 'smtpout.secureserver.net';  //Sets the SMTP hosts
    $mail->Port = '80';        //Sets the default SMTP server port
    $mail->SMTPAuth = true;       //Sets SMTP authentication. Utilizes the Username and Password variables
    $mail->Username = 'xxxxxxxxxx';     //Sets SMTP username
    $mail->Password = 'xxxxxxxxxx';     //Sets SMTP password
    $mail->SMTPSecure = 'ssl';       //Sets connection prefix. Options are "", "ssl" or "tls"
    $mail->From = $_POST["email"];     //Sets the From email address for the message
    $mail->FromName = $_POST["name"];    //Sets the From name of the message
    $mail->AddAddress('info@zielAdresse.de', 'Name');//Adds a "To" address
    $mail->AddCC($_POST["email"], $_POST["name"]); //Adds a "Cc" address
    $mail->WordWrap = 50;       //Sets word wrapping on the body of the message to a given number of characters
    $mail->IsHTML(true);       //Sets message type to HTML
    $mail->Subject = $_POST["subject"];    //Sets the Subject of the message
    $mail->Body = $_POST["message"];    //An HTML or plain text message body
  if($mail->Send())        //Send an Email. Return true on success or false on error
  {
      echo "<span style='color: green'>E-Mail erfolgreich verschickt!</span>";
  }
  else
  {
      echo "<span style='color: red'>Error!</span>";
  }

}

?>

  • Als ersten Schritt müssen wir in Zeile 8 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. Vergessen wir auch nicht den dazugehörigen Port.
  • 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 11 u. 12):
    $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 angeben. Zum Beispiel:
    $mail->SMTPSecure = "ssl";
  • Schließlich geben Sie noch in Zeile 16 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.

Java lernen

text text

PHP Lernen

zur PHP

JavaScript lernen

move nove move

FALCONBYTE.NET

Handmade with 🖤️

© 2018-2023 Stefan E. Heller

Impressum | Datenschutz | Changelog

Falconbyte Youtube Falconbyte GitHub facebook programmieren lernen twitter programmieren lernen discord programmieren lernen