Subversion-Projekte lars-tiefland.php_share

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php
        // $Id: mail.php 28 2007-09-28 12:28:21Z tiefland $

        //Variablen initialisieren      
        $headers        = array();
        $email          = (isset($_POST["email"])) ? $_POST["email"] : "info@weban.de";
        $Email=$_POST["Email"];
        
        // Existiert ein Email Schutz?
        if (eregi("[a-z0-9]{32}",$_POST["_to"])) {
                // Ja, dann ueberpruefe ob Konfiguration existiert
                if (file_exists('emailconfig.default.inc.php')) {
                        include('emailconfig.default.inc.php');
                }
                // Existiert auch diese Adresse
                if ($GLOBALS['email_config'][$_POST["_from"]]) {
                
                        $_from          = $GLOBALS['email_config'][$_POST["_from"]];
                        $_to            = $GLOBALS['email_config'][$_POST["_to"]];
                        $recipient      = $GLOBALS['email_config'][$_POST["recipient"]];
                        
                        if (eregi("[a-z0-9]{32}",$_POST["_subject"])) {
                                $_subject       = "Anfrage ueber: " . $GLOBALS['email_config'][$_POST["_subject"]];
                                $subject        = "Anfrage ueber: " . $GLOBALS['email_config'][$_POST["_subject"]];
                    } else {
                        if ($_POST["_subject"]) {
                                        $_subject       = $_POST["_subject"];
                                        $subject        = $_POST["_subject"];
                        } else {
                                        $_subject       = "Anfrage ueber: " . $GLOBALS['email_config'][$_POST["_subject"]];
                                        $subject        = "Anfrage ueber: " . $GLOBALS['email_config'][$_POST["_subject"]];
                        }
                    }    
                        
                } else {
                        die("Sie haben einen Fehlehaften Code uebergeben.<br>");
                }

        } else {
                $_from          = (isset($_POST["_from"]))              ?       $_POST["_from"]         :       $email;
                $_to            = (isset($_POST["_to"]))                ?       $_POST["_to"]           :       $email;
                $recipient      = (isset($_POST["recipient"]))  ?       $_POST["recipient"] :   $email;
                $_subject       = (isset($_POST["_subject"]))   ?       $_POST["_subject"]      :       "";
                $subject        = (isset($_POST["subject"]))    ?       $_POST["subject"]       :       "";
        }
        
        $_target        = (isset($_POST["_target"]))    ?       $_POST["_target"]       :       "";
        $redirect   = (isset($_POST["redirect"]))       ?       $_POST["redirect"]      :       "";
        $submit         = false;
        $cc             = false;
        $bcc            = false;
        $sub            = false;
        $ref            = $_SERVER["HTTP_REFERER"];
        $start          = strpos ($ref, "//");

        // Referrer überprüfen
        if ($start < 0) {
                $start = 0;
        } else {
                $start = $start + 2;
        }
        $stop = strpos ($ref, "/", $start);

        // Variable $_POST auf "submit" als Array-Key überprüfen 
        // falls nicht gefunden ==> ENDE
        
/*      foreach ($_POST as $key => $value)
        {
                if (strtolower($key)=="submit")
                {
                        $submit=true;
                }
        }

        if (substr ($ref, $start, $stop-$start) != $_SERVER["SERVER_NAME"]||!$submit) 
*/

        if (substr ($ref, $start, $stop-$start) != $_SERVER["SERVER_NAME"]) {
                exit;
        }

        //Body zusammenbauen
        foreach(array_keys($_POST) as $elem) {
                if ($elem[0] == "_") {
                        unset($_POST[$elem]);
                } else {
                        if (is_array($_POST[$elem])) {
                                $_POST[$elem] = implode($_POST[$elem],", ");
                        }
                        $_POST[$elem] = $elem.": ".$_POST[$elem];
                }
        }
        $body=implode($_POST,"\n");

        // TO Adresse ermitteln
        if (!$_to) {
                $_to = $recipient;
        }
        if (!$_subject) {
                $_subject  = $subject;
        }

        // FROM Adresse ermitteln
        if (!$_from) {
                if ($email) {
                        $_from = $email;
                } else {
                        $_from = $_to;
                }
        }

        // Weiterleitungsziel ermitteln
        if (!$_target) {
                if ($redirect) {
                        $_target = $redirect;
                } else {
//                      $_target = "danke.htm?ref=".urlencode($ref);
                        $_target = "danke.htm";
                }
        } else {
                $_target = dirname($ref)."/".$_target;
        }
        
        // Header überpruefen (muessen leer sein)
        if (count($headers)) {
                //Header wurde manipuliert!
                $keys=array("cc","cC","Cc","CC");
                foreach($keys as $key) {
                        if (isset($headers[$key])) {
                                unset($headers[$key]);
                                $cc=true;
                        }
                        if (isset($headers["b".$key])) {
                                unset($headers["b".$key]);
                                $bcc=true;
                        }
                        if (isset($headers["B".$key])) {
                                unset($headers["B".$key]);
                                $bcc=true;
                        }
                }
        }

        // erweiterte Infos erstellen
        $linkInfo      =  readlink ( $_SERVER["SCRIPT_FILENAME"] );
        $infoString    = "PHP_SELF: "                   .       $_SERVER["PHP_SELF"]                    ."\n";
        $infoString   .= "SCRIPT_NAME: "                .       $_SERVER["SCRIPT_NAME"]                 ."\n";
        $infoString   .= "REQUEST_URI: "                .       $_SERVER["REQUEST_URI"]                 ."\n";
        $infoString   .= "SCRIPT_FILENAME: "    .       $_SERVER["SCRIPT_FILENAME"]             ."\n";
        $infoString   .= "HTTP_REFERER: "               .       $_SERVER["HTTP_REFERER"]                ."\n";
        $infoString   .= "REMOTE_ADDR: "                .       $_SERVER["REMOTE_ADDR"]                 ."\n";
        $infoString   .= "SYM_LINK_INFO: "              .       $linkInfo                                               ."\n";
        $infoString   .= "EMPFAENGER: "                 .       $_to                                                    ."\n";

        $infoString   =   "\n\n=============================================\n\n"
                  .   $infoString
                                  .   "\n=============================================\n";

        // ende erweiterte Infos

        // Verschiedene Variablen ueberpruefen, ob "TO: BCC: CC: oder FROM: Eintraege vorkommen
        $ereg1 = eregi("/(from\:)|(to\:)|(cc\:)|(bcc\:)/", $_to);
        $ereg2 = eregi("/(from\:)|(to\:)|(cc\:)|(bcc\:)/", $body);
        $ereg3 = eregi("/(from\:)|(to\:)|(cc\:)|(bcc\:)/", $_subject);
        
        // Eventuell vorhandenes "SUBJECT"-Feld im Header löschen
        foreach($headers as $header => $value) {
                if (strtolower($headers)=="subject") {
                        unset($headers[$header]);
                        $sub=true;
                }
        }
        
        //Body erweitern, falls manipulierte Werte gefunden wurden!
        $body .= ($ereg1) ? "To enthielt zusaetzliche Angaben ('FROM:', 'TO:', 'CC:', 'BCC:')!\n" : "";
        $body .= ($ereg2) ? "Body enthielt zusaetzliche Angaben ('FROM:', 'TO:', 'CC:', 'BCC:')!\n" : "";
        $body .= ($ereg3) ? "Subject enthielt zusaetzliche Angaben ('FROM:', 'TO:', 'CC:', 'BCC:')!\n" : "";
        $body .= ($sub)   ? "Header enthielt zusaetzliche Subject-Angabe!\n" : "";
        $body .= ($bcc)   ? "Header enthielt BCC-Angabe!\n" : "";
        $body .= ($cc)    ? "Header enthielt CC-Angabe!\n" : "";
        
        //Pruefen, ob kein HTML in Nachricht vorkommt
        $no_html=($body==strip_tags($body));
        
        // Header-Array zusammenbauen
        $headers["From"]        = $_from;
        $headers["Subject"]     = $_subject;
        
        // PEAR-Klasse "Mail" einbinden und "mail"-Objekt erstellen
        require_once "Mail.php";
        $mail=Mail::factory("mail");
        
        // Pruefen, ob kein Fehler aufgetreten ist
        if (!PEAR::isError($mail)) {
                // Wenn alles OK ist
                if (!$ereg1 && !$ereg2 && !$ereg3 && !$bcc && !$cc && !$sub && $no_html) {
                        //Mail verschicken
                        $mail->send($_to, $headers, $body);
                        $body=("\nSehr geehrte Teilnehmerin, sehr geehrter Teilnehmer, \n\nvielen Dank für Ihre Anfrage. Ihre Anmeldung wird nun bearbeitet. Weitere Infos erhalten Sie in Kürze. \n\nBei Rückfragen stehen wir Ihnen gerne zur Verfügung. \n\nIhr Team der AIOD Deutschland \n\n____________________________________________________________\n\nMit freundlichen Grüßen / Best regards\n\nMelanie Trant\n\nAIOD Deutschland e. V. \nPostfach 990142\n47298 Duisburg\n\nTelefon: +49 2065-25 76 21\nFax: +49 2065-25 76 22\n\nMobil: +49 172-289 78 21\n\ninfo@aiod-ev.de\nwww.aiod-ev.de");
                        $mail->send($Email, $headers, $body);
                }
                
                // Nachricht erweitern
                $body = implode("\n",$headers)."\n$_to\n$body";
                
                // Nachrichtenkopie verschicken
                if (!$ereg1 && !$ereg2 && !$ereg3 && !$bcc && !$cc && !$sub && $no_html) {
                        $headers["Subject"]="Nachrichtenkopie auf $SERVER_NAME: ".$headers["Subject"];
                } else {
                        $headers["Subject"]="Nachrichtenkopie auf $SERVER_NAME: ".$headers["Subject"]." - Spam-Nachricht";
                }
                
                //$mail->send("markus@weban.de",   $headers, $body.$infoString);
                //$mail->send("niewerth@weban.de", $headers, $body.$infoString);
                //$mail->send("tiefland@weban.de", $headers, $body.$infoString);
        }
        
        // Auf Danke-Seite weiterleiten
        header("Location: $_target");
?>