SMTP-Mail Formular
Scripte > Form-Mailer
E-Mail-Versand über den SMPT-Server
Dieses HTML-Skript versendet eine E-Mailnachricht über einen SMTP-Server. SMTP ist nur notwendig, wenn die PHP-interne Funktion mail() nicht genutzt werden kann (z.B. auf einem Windows-Server) und hat unter anderem den Vorteil, nicht vom Provider der Homepage abhängig zu sein. Um E-Mails per SMTP zu versenden wird ein E-Mail-Account (Pop3) benötigt, der bei fast jedem Anbiter zur Verfügung steht.
Es lassen sich diverse Funktionen wahlweise in der Datei "config.php" zu- und abschalten, z. B. Captcha, Sicherheitsfrage, Uploads, etc..
Als "Danke"-Seite kann die Vorgabe genutzt werden, aber auch eine eigene (bereits verfügbare) Seite genutzt werden. Alle Style-Anpassungen bzw. Änderungen wie der Formularhintergrund, die Schriftfarbe und -größe sowie alle Objektabstände werden über die CSS-Datei durchgeführt.
ZIP-Datei in ein beliebiges Verzeichnis auf dem PC entpacken und das Verzeichnis "wsX5Obj" auf den Webserver in das Root-Verzeichnis kopieren. HEAD-Code in den HEAD-Bereich <head>.....</head> und HTML-Code in den BODY-Bereich <body>.....</body> der aufrufende Datei einfügen. Vor dem HTML Tag - also an oberster Zeile - muss der Session-Code zugefügt werden.
Eine demo.php ist beigefügt, die zum Test in das Root-Verzeichnis des Webservers kopiert werden kann.
Aufruf: "http://www.domain.tld/demo.php". Die aufrufende Dateie muss somit die Dateiendung .php aufweisen.
Es müssen folgende Parameter in der Datei "config.php" auf dem Server im Verzeichnis "wsX5Obj/Obj146_0" angepasst werden:
Code Datei "config.php"
$domain = "http://domain.tld"; // Domain der Webseite mit http(s)://
$path = "wsX5Obj/Obj146_0"; // Pfad des Kontaktformulars (Standard)
$empfaenger = "deine@email.tld"; // Deine Empfänger E-Mail Adresse.
$ihrname = "dein name"; // Deinen Namen, als Absender in der Danke Mail.
$cfg['DATENSCHUTZ_ERKLAERUNG'] = 1; // 0 = Ohne Datenschutzerklärung, 1 = Mit Datenschutzerklärung
$datenschutzerklaerung = "$domain/$path/datenschutz.php"; // Pfad zur Datenschutzerklärung.
$danke = "$domain/$path/danke.php"; // Pfad zur Danke Seite.
// Spamschutz - Einstellungen
$cfg['Sicherheitscode'] = 1; // 0 = Ohne Sicherheitscode, 1 = Mit Sicherheitscode
$cfg['Sicherheitsfrage'] = 1; // 0 = Ohne Sicherheitsfrage, 1 = Mit Sicherheitsfrage
$cfg['Honeypot'] = 0; // 0 = Ohne Honeypot, 1 = Mit Honeypot
$cfg['Zeitsperre'] = 0; // Sek. zwischen Anzeigen und Senden des Formulars, 0 = Keine
$cfg['Klick-Check'] = 0; // 0 = Ohne Klick-Check, 1 = Mit Klick-Check
$cfg['Links'] = 100; // Anzahl der maximal erlaubten Links, 0 = keine Links erlaubt
$cfg['Badwordfilter'] = 'sex%, pussy%, porn%, %.ru, %.ru/%'; // Begriffe für den Bad Word Filter, 0 oder leer = Ohne Filter
$cfg['Badwordfields'] = 'anrede, titel, vorname, name, firma, telefon, email, betreff, nachricht';
// Weitere Einstellungen
$cfg['Kopie_senden'] = 0; // 0 = keine, 1 = nur bei Zustimmung, 2 = immer (ungefragt)
$cfg['HTML5_FEHLERMELDUNGEN'] = 1; // 0 = Ohne HTML5 Fehlermeldungen, 1 = Mit HTML5 Fehlermeldungen
// Aktivierung SMTP Funktion
$smtp = array();
$smtp['enabled'] = 0; // Versand über einen SMTP Server? Ja = 1, Nein = 0
$smtp['host'] = 'smtp.example.de'; // SMTP-Host des SMTP Servers. (bspw. smtp.gmail.com)
$smtp['user'] = 'name'; // SMTP-Benutzername des SMTP Servers.
$smtp['password'] = 'passwort'; // SMTP-Passwort des SMTP Servers.
$smtp['encryption'] = 'ssl'; // Art der Verschlüsselung: '', 'ssl' oder 'tls'
$smtp['port'] = 465; // TCP Port, unter welchem Ihr SMTP Server erreichbar ist.
$smtp['debug'] = 0; // Das Debuglevel (0 - 4)
// Einstellungen für Upload-Funktion
$cfg['NUM_ATTACHMENT_FIELDS'] = 0; // Anzahl der Upload-Felder
$cfg['UPLOAD_ACTIVE'] = 1; // 1 = Dateianhang senden (Standard), 2 = Dateianhang hochladen.
$cfg['WHITELIST_EXT'] = 'pdf|png|jpg'; // Erlaubte Dateiendungen - Beispiel: pdf|png|jpg
$cfg['MAX_FILE_SIZE'] = 1024; // Maximale Größe von einer Datei in KB.
$cfg['MAX_ATTACHMENT_SIZE'] = 2048; // Maximale Größe von mehreren Dateien in KB, bei mehr als 1 Uploadfeld
$cfg['BLACKLIST_IP'] = array('12.345.67.89'); // Gesperrte IPs - Beispiel: array('192.168.1.2', '192.168.2.4');
$cfg['UPLOAD_FOLDER'] = '$domain/$path/upload'; // Verzeichnis für den datei-Uploaf, Schreibrechte (chmod 777)
// Maximale Zeichenlänge der Felder definieren
$zeichenlaenge_firma = "50"; // Maximale Zeichen - Feld "Firma" (zwischen den Anführungszeichen)
$zeichenlaenge_vorname = "50"; // Maximale Zeichen - Feld "Vorname" (zwischen den Anführungszeichen)
$zeichenlaenge_name = "50"; // Maximale Zeichen - Feld "Nachname" (zwischen den Anführungszeichen)
$zeichenlaenge_email = "50"; // Maximale Zeichen - Feld "E-Mail" (zwischen den Anführungszeichen)
$zeichenlaenge_telefon = "50"; // Maximale Zeichen - Feld "Telefon" (zwischen den Anführungszeichen)
$zeichenlaenge_betreff = "50"; // Maximale Zeichen - Feld "Betreff" (zwischen den Anführungszeichen)
Funktionsweise Badword Filter:
badword = matcht, wenn das Bad Word als ganzes Wort enthalten ist
badword% = matcht, wenn das Bad Word enthalten ist UND wenn ein Wort mit dem Bad Word beginnt
%badword = matcht, wenn das Bad Word enthalten ist UND wenn ein Wort mit dem Bad Word endet
%badword% = matcht, wenn das Bad Word enthalten ist UND wenn ein Wort das Bad Word enthält
Badwordfields: Die Namen der Felder, die bei dem Bad Word Filter geprüft werden sollen (Groß- und Kleinschreibung beachten!)
Code für den <HEAD> Bereich
<link rel="stylesheet" href="wsX5Obj/Obj146_0/kontakt.css" />
Der CSS-Verweis muss auch in den <HEAD>-Bereich in der Danke-Seite eingefügt werden.
Code für den <BODY> Bereich
<div align="center">
<?php include "wsX5Obj/Obj146_0/kontakt.php"; ?>
</div>
Falls Einbindung "Danke"-Seite (separat):
<div align="center">
<?php include "wsX5Obj/Obj146_0/danke.php"; ?>
</div>
Der Parameter $danke in der Datei "config.php" ist anzupassen!
Code Datei "contactform.css"
.Obj146 { width: 100%; max-width: 600px; padding: 10px; font-size: 11px; border: 1px solid #666666;
background: #F5F5F5; font-size:14px; }
.Obj146 fieldset { margin: 10px 0; padding: 8px; border-width: 1px; border-color: #666; }
.Obj146 a {color: #990000; text-decoration: none;}
.Obj146 a:hover {color: #483D8A;}
.Obj146 legend { background: #006794; color: #fff; padding: 3px 5px; border: 1px solid #ddd; text-transform: uppercase; }
.Obj146 .row { padding: 1px 10px; }
.Obj146 label { font-size:13.5px; display: inline-block; width: 30%; vertical-align: top; padding-top: 3px; }
.Obj146 .Obj146_field { display: inline-block; width: 68%; height: 30px; }
.Obj146 input, .Obj146 textarea, .Obj146 select {
font-size:13.5px;width:100%;border-right: 1px solid #ddd;border-bottom: 1px solid #ddd;border-left: 1px solid #666666;border-top: 1px solid #666666;padding: 0px 3px;margin: 3px 0;background: #ddc;
}
.Obj146 select {
width:45%;height: 25px;border-right: 1px solid #ddd;border-bottom: 1px solid #ddd;border-left: 1px solid #666666;border-top: 1px solid #666666;margin-right: 15px;
}
.Obj146 input:active, .Obj146 input:focus, .Obj146 input:hover,
.Obj146 textarea:active, .Obj146 textarea:focus, .Obj146 textarea:hover,
.Obj146 select:active, .Obj146 select:focus, .Obj146 select:hover { background: #ffff88; }
.Obj146 .Obj146_errormsg { color: #f00; }
input.Obj146_errordesignfields, textarea.Obj146_errordesignfields, select.Obj146_errordesignfields {
}background-color:#cc3333;
.Obj146_captchareload { padding-left:10px; }
#checkid { width: auto; }
#checkid2 { width: auto; }
.Obj146_buttons { text-align: center; }
.Obj146_buttons input { width: 40%; margin-top: 20px; }
.Obj146_captchareload img {
background: #555555;color: #fff;border-top:2px solid #fff;border-left:2px solid #fff;border-bottom:2px solid #666666;border-right:2px solid #666666;
}
.Obj146_captchareload img:hover {
background: #555555;color: #fff;border-top:2px solid #ddd;border-left:2px solid #ddd;border-bottom:2px solid #fff;border-right:2px solid #fff;
}
.Obj146_buttons input {
background: #555555;color: #fff;padding-top:4px;padding-bottom:4px;border-top:2px solid #fff;border-left:2px solid #fff;border-bottom:2px solid #666666;border-right:2px solid #666666;
}
.Obj146_buttons input:hover {
background: #555555;color: #fff;padding-top:4px;padding-bottom:4px;border-top:2px solid #fff;border-left:2px solid #fff;border-bottom:2px solid #fff;border-right:2px solid #fff;
}
.Obj146_pflichtfeld { color: #800000; }
.Obj146 .Obj146_pflichtfeldhinweis { text-align:center; }
.Obj146_zurueck { color: #6891D1; }
.Obj146 .copyright { font-size:11px; text-align:center; }
.Obj146 input[type="checkbox"] {
height: calc(0.6rem/16*34);width: calc(0.6rem/16*34);border: 1px solid #ccc;border-radius: .25rem;box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;display: block;float: left;-webkit-appearance: none;-moz-appearance: none;appearance: none;cursor: pointer;margin-left: 0px;
}
.Obj146 input:checked { background: url(../img/check-solid.svg) no-repeat center center; background-size: 75%; }
.Obj146_form{display:flex; flex-direction:column;}
.Obj146_checkbox-container{display:flex;}
@media screen and (max-width: 380px) {
/* .Obj146 .row { padding: 3px 10px; } */.Obj146 label { display: block; width: 100%; }.Obj146 .Obj146_field { display: block; width: 100%; }.Obj146 input, .Obj146 textarea, .Obj146 select { padding: 6px; }.Obj146 select { height:28px; }
}
» nach oben «