Blame | Letzte Änderung | Log anzeigen | RSS feed
<?// $Id: mail.php 25 2007-09-19 15:31:51Z tiefland $//Variablen initialisieren$headers = array();$email = (isset($_POST["email"])) ? $_POST["email"] : "info@weban.de";// Existiert ein Email Schutz?if (eregi("[a-z0-9]{32}",$_POST["_to"])) {// Ja, dann ueberpruefe ob Konfiguration existiertif (file_exists('emailconfig.default.inc.php')) {include('emailconfig.default.inc.php');}// Existiert auch diese Adresseif ($GLOBALS['email_config'][$_POST["_from"]]) {$_from = $GLOBALS['email_config'][$_POST["_from"]];$_to = $GLOBALS['email_config'][$_POST["_to"]];$recipient = $GLOBALS['email_config'][$_POST["recipient"]];$_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üfenif ($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 zusammenbauenforeach(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 ermittelnif (!$_to){$_to = $recipient;}if (!$_subject){$_subject = $subject;}// FROM Adresse ermittelnif (!$_from){if ($email){$_from = $email;}else{$_from = $_to;}}// Weiterleitungsziel ermittelnif (!$_target){if ($redirect){$_target = $redirect;}else{$_target = "danke.htm?ref=".urlencode($ref);}}else{$_target = dirname($ref)."/".$_target;}// Header überprüfen (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;}}}// Verschiedene Variablen überprüfen, ob "TO: BCC: CC: oder FROM: Einträge 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öschenforeach($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":"";//Pr�fen, 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 erstellenrequire_once("Mail.php");$mail=Mail::factory("mail");// Pr�fen, ob kein Fehler aufgetreten istif(!PEAR::isError($mail)){// Wenn alles OK istif(!$ereg1 && !$ereg2 && !$ereg3 && !$bcc && !$cc && !$sub && $no_html){//Mail verschicken$mail->send($_to, $headers, $body);}// Nachricht erweitern$body=implode("\n",$headers)."\n$_to\n$body";// Nachrichtenkopie verschicken$headers["Subject"]="Nachrichtenkopie auf $SERVER_NAME: ".$headers["Subject"];//$mail->send("markus@weban.de", $headers, $body);//$mail->send("niewerth@weban.de", $headers, $body);//$mail->send("tiefland@weban.de", $headers, $body);}// Auf Danke-Seite weiterleitenheader("Location: $_target");?>