send Mail mit PHP   Mit diesem kleinen Script realisieren Sie einen Mailversandt mit Standard PHP und einer Sperrliste die den Versand abbricht wenn Sperrworte enthalten sind.

____________

« Home

Mit diesem PHP-Script wird ein einfacher Mailversand realisiert. Erzeugen Sie noch eine Eingabemaske und schon können Sie dieses Programm in Ihre Webseite einhängen:

001  <?php
002 //send_email.php
003 $email_from = "absender@domain.de"; //Absender falls keiner angegeben wurde
004 $sendermail_antwort = true; //E-Mail Adresse des Besuchers als Absender. false= Nein ; true = Ja
005 $name_von_emailfeld = "Email"; //Feld in der die Absenderadresse steht
006
007 $empfaenger = "kontakt@domain.de"; //Empfaenger-Adresse
008 $mail_cc = ""; //CC-Adresse, diese E-Mail-Adresse bekommt einer weitere Kopie
009 $betreff = "Anfrage zur Erstellung einer Webseite"; //Betreff der Email
010
011 $url_ok = "meldung-ok.html"; //Zielseite, wenn E-Mail erfolgreich versendet wurde
012 $url_fehler = "meldung-nook.html"; //Zielseite, wenn E-Mail nicht gesendet werden konnte
013
014 //Diese Felder werden nicht in der Mail stehen
015 $ignore_fields = array('submit');
016
017 //Datum, wann die Mail erstellt wurde
018 $name_tag = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
019 $num_tag = date("w");
020 $tag = $name_tag[$num_tag];
021 $jahr = date("Y");
022 $n = date("d");
023 $monat = date("m");
024 $time = date("H:i");
025
026 //Erste Zeile unserer Email
027 $msg = ":: Gesendet am $tag, den $n.$monat.$jahr - $time Uhr ::\n\n";
028
029 //Hier werden alle Eingabefelder abgefragt
030 foreach($_POST as $name => $value) {
031 if (in_array($name, $ignore_fields)) {
032 continue; //Ignore Felder wird nicht in die Mail eingefuegt
033 }
034 $msg .= "::: $name :::\n$value\n\n";
035 }
036
037 //E-Mail Adresse des Besuchers als Absender
038 if ($sendermail_antwort and isset($_POST[$name_von_emailfeld]) and filter_var($_POST[$name_von_emailfeld], FILTER_VALIDATE_EMAIL)) {
039 $email_from = $_POST[$name_von_emailfeld];
040 }
041
042 $header="From: $email_from";
043
044 if (!empty($mail_cc)) {
045 $header .= "\n";
046 $header .= "Cc: $mail_cc";
047 }
048
049 //Email als UTF-8 senden
050 $header .= "\nContent-type: text/plain; charset=utf-8";
051
052 /**
053 * Eine Blackliste für den Inhalt der Mail pflegen. Wenn der Text der Mail einen
054 * der folgenden Begriffe enthält, wird der Versandt unterbrochen. Der Leser
055 * bekommt eine entsprechende Meldung
056 */
057
058 $blacklist = array('sex', 'date', 'babe', 'yandex', 'money', 'porn', 'money', 'income', '$', 'script', 'cryptocurrency', 'trading', 'investing');
059 $fehler = false;
060 foreach ($blacklist as $value) {
061 if (strpos(strtolower($msg), $value)) {
062 $fehler = true;
063 }
064 }
065 //- Blackliste Ende -
066
067 if ($fehler) {
068 $mail_senden = false;
069 } else {
070 $mail_senden = mail($empfaenger,$betreff,$msg,$header);
071 }
072
073 //Weiterleitung, hier konnte jetzt per echo auch Ausgaben stehen
074 if($mail_senden){
075 header("Location: ".$url_ok); //Mail wurde gesendet
076 exit();
077 } else{
078 header("Location: ".$url_fehler); //Fehler beim Senden
079 exit();
080 }
081 ?>


Weiter stöbern


PHP multidimensionale Arrays

Das auflösen mehrdimensionaler Arrays ist in PHP etwas sperrig, daher in diesem Beitrag ein diskretes Design-Pattern.

Unsichere PHP includes

PHP includes() sind in Einsteigerscripten oft zu finden und bergen großes Gefahrenrisiko in sich. Die Lücke kann aber einfach geschlossen werden.


Autor: Oliver Lohse   Datum: 2020-05-30   Kategorie: PHP   Schlagworte: Variable • Back • Hop