Blame | Letzte Änderung | Log anzeigen | RSS feed
<?// $Id: mail.php 28 2007-09-28 12:28:21Z 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, "//" );$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 = "\n\n=============================================\n" . $infoString ."=============================================\n";// 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 verschickenif ( !$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 weiterleitenheader( "Location: $_target" );?>