Kontaktformular - E-Mail mit PHPMailer und SMTP versenden

[Bildschirmfoto / Grafik]
 Berechnungen mit dem Datum

Manchmal möchte man die E-Mail vom Kontaktformular über dem PHPMailer und SMTP (Simple Mail Transfer Protocol) versenden. Oder der Provider bietet den versandt der E-Mails nur über SMTP an. Weil das aber nicht so einfach ist und bestimmte Einstellungen beachtet werden müssen, stelle ich hier beispielhaft ein PHP-Skript vor.

Die E-Mail-Adressen, "SMTP Benutzername" und "SMTP Passwort" müssen angepasst werden. Außerdem die Dateien: "danke.php" und "fehler.php".

Dieses Skript wurde erfolgreich beim Provider IONOS (1&1) und dem PHPMailer (6.5.0) getestet.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
// PHP-Fehlermeldungen anzeigen
error_reporting(E_ALL);
ini_set('display_errors'true);

// PhpMailer-Klassen in den globalen Namespace importieren
use PHPMailer\PHPMailer\PHPMailer;
use 
PHPMailer\PHPMailer\SMTP;
use 
PHPMailer\PHPMailer\Exception;

// PHPMailer einbinden
require "PHPMailer-master/src/Exception.php";
require 
"PHPMailer-master/src/PHPMailer.php";
require 
"PHPMailer-master/src/SMTP.php";

if (
$_SERVER["REQUEST_METHOD"] == "POST") {

$dankeSeite "danke.php"// Danke - Seite, die Mail wurde erfolgreich versandt (Eventuell anpassen).
$fehlerSeite "fehler.php"// Fehler - Seite, falls die Mail nicht versandt werden konnte.

 // Instanz und Zeichenkodierung setzen
 
$mail = new PHPMailer(true);
 
$mail->CharSet "UTF-8";

 
// Servereinstellungen
 // $mail->SMTPDebug = true; // Ausführliche Debugausgabe aktivieren
 
$mail->isSMTP(); // Senden mit SMTP
 
$mail->Host "smtp.ionos.de"// Postausgangsserver (SMTP)
 
$mail->SMTPAuth true// SMTP-Authentifizierung aktivieren
 
$mail->Username "mail@example.com"// SMTP Benutzername
 
$mail->Password "**********"// SMTP Passwort
 
$mail->SMTPSecure PHPMailer::ENCRYPTION_SMTPS// Implizite TLS-Verschlüsselung aktivieren
 
$mail->Port 465// Port - Postausgangsserver (SMTP)

 // Absender und Empfänger
 
$mail->setFrom("mail@example.com""John Doe"); // Absender
 
$mail->addAddress("jane@outlook.com""Jane Foo"); // Empfänger

 // Sonderzeichen in HTML-Codes umwandeln
 
$_POST array_map('htmlspecialchars'$_POST);

 
// Betreff
 
$mail->Subject $_POST["betreff"];

 
// Zeitzone und das aktuelle Datum setzen
 
date_default_timezone_set("Europe/Berlin");
 
$datum date("d.m.Y H:i");

 
// Inhalt der E-Mail setzen
 
$mail->Body "Gesendet am: " $datum " Uhr
 Name: " $_POST["name"] . "
 Betreff: " $_POST["betreff"] . "
 E-Mail: " $_POST["mail"] . "

 Nachricht: " $_POST["nachricht"] . PHP_EOL;

 
// Senden
 
if ($mail->send()) {
  
header("Location: " $dankeSeite);
 }
 else {
  
header("Location: " $fehlerSeite);
 }
}
?>
<!DOCTYPE html>
<html lang="de">
 <head>
  <meta charset="UTF-8">
  <title></title>
  <meta name="viewport" content="width=device-width,initial-scale=1">
 <link rel="stylesheet" href="style.css">
 </head>
<body>

<form method="post">

<p><label>Name:<br>
 <input type="text" name="name" required="required"></label><br>
 <span class="hilfetext">Geben Sie hier Ihre Vor- und Nachnamen ein.</span></p>

<p><label>E-Mail:<br>
 <input type="mail" name="mail" required="required"></label><br>
 <span class="hilfetext">Geben Sie hier Ihre E-Mail-Adresse ein.</span></p>

<p><label>Betreff:<br>
 <input type="text" name="betreff" minlength="10" required="required"></label><br>
 <span class="hilfetext">Aus welchem Grund möchten Sie mit uns in Kontakt treten?</span></p>

<p><label>Nachricht:<br>
<textarea name="nachricht" minlength="25" required="required"></textarea></label><br>
<span class="hilfetext">Hier haben Sie Platz für die Nachricht.</span></p>

<p><button type="submit">Nachricht senden</button></p>

</form>

</body>
</html>

Herunterladen kontaktformular_phpmailer_smtp.zip

Viel Spaß damit!

Siehe auch: IONOS E-Mail: Serverdaten für IMAP, POP3 und SMTP


Für die Software: Mobirise gibt es spezielle Scripte damit der versandt auch darüber funktioniert. Weitere Infos dazu finden Sie auf meiner Partnerseite - mobirise-tutorials.com unter:
Kontakt Formular von Mobirise mit einem eigenen Mail-Skript und Weiterleitung zur Erfolgsseite

Tipps

Hinzufügen von Wasserzeichen beim hochladen eines Bildes
Ein Wasserzeichen ist die beste Option, um das Bild vor Diebstahl oder der Wiederverwendung durch eine andere Person zu schützen. Sie können den Besitz anzeigen, indem Sie dem Bild Wasserzeichen hinzufügen. Das Wasserzeichen hilft, den Ersteller zu identifizieren.
Mit PHP zeichnen - Eine Grafik mit PHP erstellen
Mit den Grafikfunktionen können Sie zur Laufzeit des PHP-Scripts auch Grafiken erzeugen.
Checkbox (Mehrfachauswahl) und DB-Ausgabe
Mit den Checkboxen lassen sich mehrere Einträge von der DB-Tabelle auswählen, auswerten und ausgeben.