Kontaktformular mit Bestätigungsmail?
Re: Kontaktformular mit Bestätigungsmail?
Code: Alles auswählen
<?php
/*
* mailscript.php versenden über SMTP
* Version vom 21.07.2021
*
* Erfolgreich getestet mit: PHPMailer Version: 6.5.0
*/
// PHPMailer einbinden
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require "PHPMailer-master/src/Exception.php";
require "PHPMailer-master/src/PHPMailer.php";
require "PHPMailer-master/src/SMTP.php";
// Danke und Fehlerseite
$dankeSeite = "danke.html"; // Danke - Seite, die Mail wurde erfolgreich versandt.
$fehlerSeite = "fehler.html"; // Fehler - Seite, falls die Mail nicht versandt werden konnte.
// Betreff
// Jede E-Mail benötigt einen Betreff, da jedoch im Formular kein
// entsprechendes Feld gesetzt wurde, wird ein fester Betreff hinzugefügt.
$betreffEmail = "Kontaktformular Homepage KTC";
// Wurden POST-Daten gesendet?
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Zeitzone und das aktuelle Datum setzen
date_default_timezone_set("Europe/Berlin");
$datum = date("d.m.Y H:i");
// HTML-Tags entfernen
$_POST = array_map('strip_tags', $_POST);
// Inhalt der E-Mail setzen
$inhaltEmail = "Gesendet am: $datum Uhr
Vorname: " . $_POST["vorname"] . "
Nachname: " . $_POST["nachname"] . "
E-Mail: " . $_POST["email1"] . "
Phone: " . $_POST["phone"] . "
Nachricht: " . $_POST["textarea"] . "
";
// Instanz und Zeichenkodierung setzen
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
// Servereinstellungen
$mail->isSMTP(); // Senden mit SMTP
$mail->Host = "send.one.com"; // Postausgangsserver (SMTP)
$mail->SMTPAuth = true; // SMTP-Authentifizierung aktivieren
$mail->Username = "webmaster@kreuztalertanzclub-casino.de"; // SMTP Benutzername
$mail->Password = "xxxxxxxx"; // SMTP Passwort
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // Implizite TLS-Verschlüsselung aktivieren
$mail->Port = 465; // Port - Postausgangsserver (SMTP)
// Absender und Empfänger
$mail->setFrom("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Absender
$mail->addAddress("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Empfänger
// Der Absender bekommt eine Kopie
$mail->addCC($_POST["email1"]); // Falls BCC gewünscht: $mail->addBCC($_POST["email1"]);
// "Antworten an" den Absender der Nachricht setzen
$mail->addReplyTo($_POST["email1"], $_POST["name"]);
// Betreff und Body setzen
$mail->Subject = $betreffEmail;
$mail->Body = $inhaltEmail;
// E-Mail versenden
if ($mail->Send()) {
header("Location: " . $dankeSeite);
}
else {
header("Location: " . $fehlerSeite);
}
}
?>
Grüssle
Detlev
Detlev
Re: Kontaktformular mit Bestätigungsmail?
Warum ich nicht SMTP verwende sondern den PHP Mail Befehl ist einfach zu erklären.
Ich kann schlecht von Kunden verlangen das sie mir ihr Passwort für Ihre Mailaccounts geben - macht man ja auch nicht, sowas
Das Script ist durch den PHP Mailer auch schon so ziemlich sicher, solange keiner das mailscript.php zu sehen bekommt.
Hier mein Script welches gerade läuft:
Ich kann schlecht von Kunden verlangen das sie mir ihr Passwort für Ihre Mailaccounts geben - macht man ja auch nicht, sowas

Das Script ist durch den PHP Mailer auch schon so ziemlich sicher, solange keiner das mailscript.php zu sehen bekommt.
Hier mein Script welches gerade läuft:
Code: Alles auswählen
<?php
/*
* mailscript.php
* Version überarbeitet mit Absender-Kopie
*/
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require __DIR__ . '/PHPMailer-master/src/Exception.php';
require __DIR__ . '/PHPMailer-master/src/PHPMailer.php';
session_start(); // Session starten für Danke-Seite
// Empfänger-Daten
$empfaengerName = "Volker";
$empfaengerEmail = "volker@niederastroth.de";
$dankeSeite = "danke.php";
$fehlerSeite = "fehler.html";
$betreffEmail = "Kontaktformular Homepage";
// Wurden POST-Daten gesendet?
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Zeitzone setzen
date_default_timezone_set("Europe/Berlin");
$datum = date("d.m.Y H:i");
// Eingaben bereinigen
$name = htmlspecialchars(strip_tags($_POST["name"] ?? ""));
$email = filter_var($_POST["email"] ?? "", FILTER_VALIDATE_EMAIL);
$phone = htmlspecialchars(strip_tags($_POST["phone"] ?? ""));
$message = htmlspecialchars(strip_tags($_POST["message"] ?? ""));
if (!$email) {
header("Location: " . $fehlerSeite);
exit;
}
// Inhalt der E-Mail setzen
$inhaltEmail = "Gesendet am: $datum Uhr
Name: $name
E-Mail: $email
Phone: $phone
Nachricht: $message
";
// PHPMailer-Instanz
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
// Fester Absender (damit es nicht blockiert wird)
$mail->setFrom("no-reply@niederastroth.de", "Webseite Kontaktformular");
$mail->addReplyTo($email, $name); // Antwort an den Absender ermöglichen
// Empfänger setzen
$mail->addAddress($empfaengerEmail, $empfaengerName);
// "Antworten an" den Absender der Nachricht setzen
$mail->addReplyTo($email, $name);
// Der Absender bekommt eine Kopie
$mail->addCC($email); // Falls BCC gewünscht: $mail->addBCC($email);
// Betreff und Nachricht setzen
$mail->Subject = $betreffEmail;
$mail->Body = $inhaltEmail;
// E-Mail versenden
if ($mail->send()) {
// Daten für die Danke-Seite speichern
$_SESSION['name'] = $name;
$_SESSION['email'] = $email;
$_SESSION['phone'] = $phone;
$_SESSION['message'] = $message;
header("Location: " . $dankeSeite);
exit;
} else {
error_log("Mail-Fehler: " . $mail->ErrorInfo);
header("Location: " . $fehlerSeite);
exit;
}
}
?>
Gruß Volker
Re: Kontaktformular mit Bestätigungsmail?
Fehler in der Klammer
$mail->addCC($_POST["email1"])
muss
$mail->addCC($email1);
heissen
Das hier :
// Der Absender bekommt eine Kopie
$mail->addCC($email); // Falls BCC gewünscht: $mail->addBCC($email);
ist bei jedem mailscript gleich und sollte auch so belassen werden !
$mail->addCC($_POST["email1"])
muss
$mail->addCC($email1);
heissen
Das hier :
// Der Absender bekommt eine Kopie
$mail->addCC($email); // Falls BCC gewünscht: $mail->addBCC($email);
ist bei jedem mailscript gleich und sollte auch so belassen werden !
Gruß Volker
Re: Kontaktformular mit Bestätigungsmail?
Ja, einmal nicht aufgepasst. Passwort geändert...
Ohne das $_POST ?
Ohne das $_POST ?
Grüssle
Detlev
Detlev
- Tommy Herrmann
- Site Admin
- Beiträge: 7758
- Registriert: So 6. Dez 2020, 07:37
- Wohnort: Berlin
- Kontaktdaten:
Re: Kontaktformular mit Bestätigungsmail?
Volker,
das ist kein Fehler in der Klammer. Er verwendet doch die POST-Variable.
Ich kann heute leider nicht, weil ich Besuch habe.
Detlev,
hast Du denn das Skript, so wie Du es gerade hier eingestellt hast, auch schon getestet? Geht das oder nicht? Bei mir geht es doch genau so auch.
Hier könnt ihr das testen und auch eine Kopie erhalten:
https://www.mobirise-tutorials.com/Kont ... p#Formular
das ist kein Fehler in der Klammer. Er verwendet doch die POST-Variable.
Ich kann heute leider nicht, weil ich Besuch habe.
Detlev,
hast Du denn das Skript, so wie Du es gerade hier eingestellt hast, auch schon getestet? Geht das oder nicht? Bei mir geht es doch genau so auch.
Hier könnt ihr das testen und auch eine Kopie erhalten:
https://www.mobirise-tutorials.com/Kont ... p#Formular
Re: Kontaktformular mit Bestätigungsmail?
Warning: Undefined variable $email1 in /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php on line 66 Warning: Undefined array key "name" in /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php on line 69 Warning: Cannot modify header information - headers already sent by (output started at /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php:66) in /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php on line 77
Code: Alles auswählen
<?php
/*
* mailscript.php versenden über SMTP
* Version vom 21.07.2021
*
* Erfolgreich getestet mit: PHPMailer Version: 6.5.0
*/
// PHPMailer einbinden
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require "PHPMailer-master/src/Exception.php";
require "PHPMailer-master/src/PHPMailer.php";
require "PHPMailer-master/src/SMTP.php";
// Danke und Fehlerseite
$dankeSeite = "danke.html"; // Danke - Seite, die Mail wurde erfolgreich versandt.
$fehlerSeite = "fehler.html"; // Fehler - Seite, falls die Mail nicht versandt werden konnte.
// Betreff
// Jede E-Mail benötigt einen Betreff, da jedoch im Formular kein
// entsprechendes Feld gesetzt wurde, wird ein fester Betreff hinzugefügt.
$betreffEmail = "Kontaktformular Homepage KTC";
// Wurden POST-Daten gesendet?
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Zeitzone und das aktuelle Datum setzen
date_default_timezone_set("Europe/Berlin");
$datum = date("d.m.Y H:i");
// HTML-Tags entfernen
$_POST = array_map('strip_tags', $_POST);
// Inhalt der E-Mail setzen
$inhaltEmail = "Gesendet am: $datum Uhr
Vorname: " . $_POST["vorname"] . "
Nachname: " . $_POST["nachname"] . "
E-Mail: " . $_POST["email1"] . "
Phone: " . $_POST["phone"] . "
Nachricht: " . $_POST["textarea"] . "
";
// Instanz und Zeichenkodierung setzen
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
// Servereinstellungen
$mail->isSMTP(); // Senden mit SMTP
$mail->Host = "send.one.com"; // Postausgangsserver (SMTP)
$mail->SMTPAuth = true; // SMTP-Authentifizierung aktivieren
$mail->Username = "webmaster@kreuztalertanzclub-casino.de"; // SMTP Benutzername
$mail->Password = "xxxxxx"; // SMTP Passwort
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // Implizite TLS-Verschlüsselung aktivieren
$mail->Port = 465; // Port - Postausgangsserver (SMTP)
// Absender und Empfänger
$mail->setFrom("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Absender
$mail->addAddress("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Empfänger
// Der Absender bekommt eine Kopie
$mail->addCC($email1); // Falls BCC gewünscht: $mail->addBCC($email);
// "Antworten an" den Absender der Nachricht setzen
$mail->addReplyTo($_POST["email1"], $_POST["name"]);
// Betreff und Body setzen
$mail->Subject = $betreffEmail;
$mail->Body = $inhaltEmail;
// E-Mail versenden
if ($mail->Send()) {
header("Location: " . $dankeSeite);
}
else {
header("Location: " . $fehlerSeite);
}
}
?>
Grüssle
Detlev
Detlev
Re: Kontaktformular mit Bestätigungsmail?
Tommy warum steht dann da :
Warning: Undefined variable $email in /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php on line 66
Warning: Undefined variable $email in /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php on line 66
Gruß Volker
- Tommy Herrmann
- Site Admin
- Beiträge: 7758
- Registriert: So 6. Dez 2020, 07:37
- Wohnort: Berlin
- Kontaktdaten:
Re: Kontaktformular mit Bestätigungsmail?
Weil Detlev jetzt das POST entfernt hat, wie Du ihm falsch geraten hast:
Ich kann erst morgen wieder helfen.
Hier hatte ich den Code für Detlev richtig geschrieben:
Code: Alles auswählen
// Der Absender bekommt eine Kopie
$mail->addCC($email1); // Falls BCC gewünscht: $mail->addBCC($email);
// "Antworten an" den Absender der Nachricht setzen
$mail->addReplyTo($_POST["email1"], $_POST["name"]);
Hier hatte ich den Code für Detlev richtig geschrieben:
Re: Kontaktformular mit Bestätigungsmail?
Detlev,
heißen die Formularfelder auch genau so wie im Mailscript angesprochen ?
Vorname: " . $_POST["vorname"] . "
Nachname: " . $_POST["nachname"] . "
E-Mail: " . $_POST["email1"] . "
Phone: " . $_POST["phone"] . "
heißen die Formularfelder auch genau so wie im Mailscript angesprochen ?
Vorname: " . $_POST["vorname"] . "
Nachname: " . $_POST["nachname"] . "
E-Mail: " . $_POST["email1"] . "
Phone: " . $_POST["phone"] . "
Gruß Volker
Re: Kontaktformular mit Bestätigungsmail?
Wie du aber siehst ist email1 eingetragen... Keine Ahnung....
Ja, die Felder heißen so und funktionieren ja auch ohne den Anhang mit der Kopie an Absender...
Aber ich schaue noch mal
Ja, die Felder heißen so und funktionieren ja auch ohne den Anhang mit der Kopie an Absender...
Aber ich schaue noch mal
Zuletzt geändert von dettec61 am Sa 1. Mär 2025, 17:19, insgesamt 1-mal geändert.
Grüssle
Detlev
Detlev
- Tommy Herrmann
- Site Admin
- Beiträge: 7758
- Registriert: So 6. Dez 2020, 07:37
- Wohnort: Berlin
- Kontaktdaten:
Re: Kontaktformular mit Bestätigungsmail?
so muss es heißen!!!
$_POST["email1"]
Steht doch dort.
Trage es doch wenigsten einmal so ein und teste es:
$_POST["email1"]
Steht doch dort.
Trage es doch wenigsten einmal so ein und teste es:
Code: Alles auswählen
// Der Absender bekommt eine Kopie
$mail->addCC($_POST["email1"]); // Falls BCC gewünscht: $mail->addBCC($_POST["email1"]);
// "Antworten an" den Absender der Nachricht setzen
$mail->addReplyTo($_POST["email1"], $_POST["nachname"]);
Re: Kontaktformular mit Bestätigungsmail?
Code: Alles auswählen
_POST["name"]);
Gruß Volker
Re: Kontaktformular mit Bestätigungsmail?
Habe ich, Fehler:Tommy Herrmann hat geschrieben: Sa 1. Mär 2025, 17:19 so muss es heißen!!!
$_POST["email1"]
Steht doch dort.
Trage es doch wenigsten einmal so ein und teste es:
Code: Alles auswählen
// Der Absender bekommt eine Kopie $mail->addCC($_POST["email1"]); // Falls BCC gewünscht: $mail->addBCC($_POST["email1"]); // "Antworten an" den Absender der Nachricht setzen $mail->addReplyTo($_POST["email1"], $_POST["name"]);
Warning: Undefined array key "name" in /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php on line 75 Warning: Cannot modify header information - headers already sent by (output started at /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php:75) in /customers/e/c/6/kreuztalertanzclub-casino.de/httpd.www/mailscript2.php on line 83
Code:
Code: Alles auswählen
<?php
/*
* mailscript.php versenden über SMTP
* Version vom 21.07.2021
*
* Erfolgreich getestet mit: PHPMailer Version: 6.5.0
*/
// PHPMailer einbinden
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require "PHPMailer-master/src/Exception.php";
require "PHPMailer-master/src/PHPMailer.php";
require "PHPMailer-master/src/SMTP.php";
// Danke und Fehlerseite
$dankeSeite = "danke.html"; // Danke - Seite, die Mail wurde erfolgreich versandt.
$fehlerSeite = "fehler.html"; // Fehler - Seite, falls die Mail nicht versandt werden konnte.
// Betreff
// Jede E-Mail benötigt einen Betreff, da jedoch im Formular kein
// entsprechendes Feld gesetzt wurde, wird ein fester Betreff hinzugefügt.
$betreffEmail = "Kontaktformular Homepage KTC";
// Wurden POST-Daten gesendet?
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Zeitzone und das aktuelle Datum setzen
date_default_timezone_set("Europe/Berlin");
$datum = date("d.m.Y H:i");
// HTML-Tags entfernen
$_POST = array_map('strip_tags', $_POST);
// Inhalt der E-Mail setzen
$inhaltEmail = "Gesendet am: $datum Uhr
Vorname: " . $_POST["vorname"] . "
Nachname: " . $_POST["nachname"] . "
E-Mail: " . $_POST["email1"] . "
Phone: " . $_POST["phone"] . "
Nachricht: " . $_POST["textarea"] . "
";
// Instanz und Zeichenkodierung setzen
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
// Servereinstellungen
$mail->isSMTP(); // Senden mit SMTP
$mail->Host = "send.one.com"; // Postausgangsserver (SMTP)
$mail->SMTPAuth = true; // SMTP-Authentifizierung aktivieren
$mail->Username = "webmaster@kreuztalertanzclub-casino.de"; // SMTP Benutzername
$mail->Password = "yyyyyyy"; // SMTP Passwort
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // Implizite TLS-Verschlüsselung aktivieren
$mail->Port = 465; // Port - Postausgangsserver (SMTP)
// Absender und Empfänger
$mail->setFrom("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Absender
$mail->addAddress("webmaster@kreuztalertanzclub-casino.de", "Info KTC"); // Empfänger
// Der Absender bekommt eine Kopie
// $mail->addCC($email1); // Falls BCC gewünscht: $mail->addBCC($email);
// "Antworten an" den Absender der Nachricht setzen
// $mail->addReplyTo($_POST["email1"], $_POST["name"]);
// Der Absender bekommt eine Kopie
$mail->addCC($_POST["email1"]); // Falls BCC gewünscht: $mail->addBCC($_POST["email1"]);
// "Antworten an" den Absender der Nachricht setzen
$mail->addReplyTo($_POST["email1"], $_POST["name"]);
// Betreff und Body setzen
$mail->Subject = $betreffEmail;
$mail->Body = $inhaltEmail;
// E-Mail versenden
if ($mail->Send()) {
header("Location: " . $dankeSeite);
}
else {
header("Location: " . $fehlerSeite);
}
}
?>
Grüssle
Detlev
Detlev
Re: Kontaktformular mit Bestätigungsmail?
Oh Mann, was mach ich euch eine Arbeit..... 

Grüssle
Detlev
Detlev
Re: Kontaktformular mit Bestätigungsmail?
Detlev hat nachname und vorname die er abfragt. Die Variable aber nur name.
Gruß Volker
- Tommy Herrmann
- Site Admin
- Beiträge: 7758
- Registriert: So 6. Dez 2020, 07:37
- Wohnort: Berlin
- Kontaktdaten:
Re: Kontaktformular mit Bestätigungsmail?
Ja, das muss dann "nachname" anstatt "name" heißen. Das ist doch logisch. Ich kann nicht ständig gucken was sich geändert hat.
Re: Kontaktformular mit Bestätigungsmail?
Mit "nachname" gehts !!!
Sorry, für mich ist das leider nicht alles logisch... Sonst müsste ich ja nicht fragen. nachname war ja schon immer da (bei mir).
Sorry, für mich ist das leider nicht alles logisch... Sonst müsste ich ja nicht fragen. nachname war ja schon immer da (bei mir).
Grüssle
Detlev
Detlev
Re: Kontaktformular mit Bestätigungsmail?
So,
aber nun nochmals vielen Dank
euch beiden. Ich hoffe, das ich das jetzt endgültig hinbekomme. Werde aber an dem Testscript noch ein bisschen rumspielen... Nur um so ein paar Dinge zu verstehen...
aber nun nochmals vielen Dank

Grüssle
Detlev
Detlev
- Tommy Herrmann
- Site Admin
- Beiträge: 7758
- Registriert: So 6. Dez 2020, 07:37
- Wohnort: Berlin
- Kontaktdaten:
Re: Kontaktformular mit Bestätigungsmail?
Ich bin schon eine ganze Weile nur am Handy.
Ich schreibe morgen nochmals ein paar Erklärungen dazu.
Auch zum Unterschied von Variablen und Post-Variablen.
Es ist sehr wichtig diese Einzelheiten zu verstehen, sonst sind Fehler unvermeidbar.
Ich schreibe morgen nochmals ein paar Erklärungen dazu.
Auch zum Unterschied von Variablen und Post-Variablen.
Es ist sehr wichtig diese Einzelheiten zu verstehen, sonst sind Fehler unvermeidbar.
Wer ist online?
Mitglieder in diesem Forum: Amazon [Bot] und 3 Gäste