<?php

/**

 * Konfiguration MailScript V3 --------------------------- written by heiko groeger ©'2014 [heiko@fivevisions.de]

 ****************************************************************************************************************

   Im Formular können beliebige Formularfelder angelegt werden. Um jedoch einen optimalen Ablauf zu gewährleisten,

   sollten folgende Feldbezeichnungen immer gleich lauten (sofern diese Felder erwünscht sind):

   "Name"      => Für den Namen des Benutzers

   "Email"     => Für die Emailadresse des Benutzers

   "Kopie"     => Für die Checkbox 'Kopie an eigene E-Mail-Adresse'

   "Spezial"   => Für den Honeypot Spam Schutz

   "Captcha"   => Für den Captcha Spam Schutz

   "Nachricht" => Für die eigentliche Nachricht

   "Send"      => Für den Absendebutton des Formulars

 ****************************************************************************************************************

 */



/**

   Dieses Formular ist neben dem Honeypot auch noch mit einem Captcha ausgestattet.

   Für das Captcha muss die SESSION gestartet werden.

 */

session_start();

$_SESSION = array();

$CAPTCHA_PATH = "captcha/";

include($CAPTCHA_PATH."captcha.php");



// Standard: Mit allen Buchstaben und Ziffern

//$_SESSION['captcha'] = captcha();



// oder eigene Definition

$_SESSION['captcha'] = captcha( array(

  'min_length' => 4,

  'max_length' => 4,

  'characters' => '23456789',

  'min_font_size' => 28,

  'max_font_size' => 28,

  'color' => '#666',

  'angle_min' => 0,

  'angle_max' => 10,

  'shadow' => true,

  'shadow_color' => '#fff',

  'shadow_offset_x' => -1,

  'shadow_offset_y' => 1

));



// An welche Adresse sollen die Mails gesendet werden? [Mehrere mit Komma trennen]



//$zieladresse = 'sales@dataphysics.de';

$zieladresse = 'f.hipp@werboffice.de';



// Welche Adresse soll als Absender angegeben werden?

$absenderadresse = 'test@werboffice.de';  //f.hipp@werboffice.de

//$absenderadresse = 'formular@dataphysics.de';





// Wenn dieser Wert auf true steht, wird die Emailadresse des Benutzers als Absenderadresse verwendet

// wenn syntaktisch korrekt eingegeben. Ansonsten wird die Adresse oben als Fallback verwendet!

$absenderadresseUser = true;



// Welcher Absendername soll verwendet werden?

//$absendername = 'formular@dataphysics.de';

$absendername = 'formular@dataphysics-test.de';



// Welchen Betreff sollen die Mails erhalten?

// ###-ABSENDERNAME-### ist eine Individualisierung zur besseren Unterscheidung, kann auch entfernt werden

$betreff = 'Neue Anfrage von ###-ABSENDERNAME-###';



// Pfad zum Logobild relativ zur index.php

$logobild = 'pics/shared/logo_80x80.gif';



// Überschrift unterhalb des Logobildes

$headline = 'Kontaktanfrage';



// Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?

$urlDankeSeite = 'danke_kontakt.php';



// Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?

$trenner = ": ";



/**

 * Ende Konfiguration

 * ******************

 */







### E-Mail-Adresse syntaktisch prüfen!

function validateEmail($email){

$pattern = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-züöäß]{2,6})$/i";

  if (preg_match($pattern,$email)){

  return true;

  }

}



### Daten der Email hinzufügen!

function addData($name,$wert){

global $IT_IS_SPAM, $CAPTCHA_solved, $KOPIE_USER, $absenderadresse, $absenderadresseUser;

global $email_benutzer, $betreff, $trenner, $email_body;

$addThis = true;

  if ($name == "Name"){

  $betreff = str_replace("###-ABSENDERNAME-###",$wert,$betreff);

  }

  if ($absenderadresseUser && $name == "Email" && validateEmail($wert)){

  $absenderadresse = $wert;

  $email_benutzer  = $wert;

  }

  if ($name == "Kopie" && $wert == "on"){

  $KOPIE_USER = true; $addThis = false;

  }

  if ($name == "Spezial"){

  $addThis = false;

    if (strlen($wert) > 0){

    $IT_IS_SPAM = true;

    }

  }

  if ($name == "Captcha"){

  $addThis = false;

    if (!empty($wert) && md5($wert) == $_POST['Captcha_MD5']){

    $CAPTCHA_solved = true;

    }

  }

  if ($name == "Captcha_MD5"){

  $addThis = false;

  }

  if ($name == "Nachricht"){

  $email_body .= "<br />\n";

  }

  if ($name == "Send"){

  $addThis = false;

  }

if ($addThis){

if (empty($wert)){ $wert = "-"; }

$email_body .= $name.$trenner."<b>".$wert."</b><br />\n";

}

}



### Formular wurde abgesendet!

##############################

if ($_POST){

  

// Honeypot Spam Schutz -> siehe "div.Spezial"

$IT_IS_SPAM = false;



// Captcha korrekt gelöst?

$CAPTCHA_solved = false;



// Kopie an Benutzer?

$KOPIE_USER = false;



// Homebase

$homebase = "http://".$_SERVER['HTTP_HOST'];



  // Email Body

  $email_body = "<div style='font-family:Arial; font-size:13px; color:#222222; line-height:180%'>

  <a href='$homebase' target='_blank'><img src='$homebase/$logobild' border='0'></a>

  <h2 style='font-family:Arial; font-size:25px; color:#4A4A4A'>$headline</h2>\n";



    foreach ($_POST as $name => $wert) {

        if (is_array($wert)) {

        foreach ($wert as $einzelwert) {

        $einzelwert = nl2br($einzelwert);

        $einzelwert = stripslashes($einzelwert);

        addData($name,$einzelwert);

            }

        }

    else {

      $wert = nl2br($wert);

      $wert = stripslashes($wert);

      addData($name,$wert);

        }

    }

  

  $email_body .= "<br /><br />\n";

  $email_body .= "<a href='$homebase' target='_blank' style='border-top:1px dotted #AAAAAA; padding-top:16px'>$homebase</a>\n";

  $email_body .= "</div><br /><br />\n";

  

     // Anhang?

     $attach = array();

  if (!empty($_FILES['Anhang']['name'])){

  $attach['name'] = $_FILES['Anhang']['name'];

  $attach['size'] = $_FILES['Anhang']['size'];

  $attach['type'] = $_FILES['Anhang']['type'];

  $attach['data'] = implode("",file($_FILES['Anhang']['tmp_name']));

  }

  

  // E-Mail erstellen mit allen Headern

  $boundary = md5(uniqid(time()));

  $header = "From: ".$absendername." <".$absenderadresse.">\n";

  //$header.= "Reply-To: ".$absendername." <".$absenderadresse.">\n";

  $header.= "X-Mailer: PHP ".phpversion()."\n";

  $header.= "X-Sender-IP: ".$_SERVER['REMOTE_ADDR']."\n";

  $header.= "MIME-Version: 1.0\n";

  $header.= "Content-Type: multipart/mixed; boundary=".$boundary."\n";

  

  // E-Mail Content

  $content = "This is a multi-part message in MIME format.\n\n";

  $content.= "--".$boundary."\n";

  $content.= "Content-Type: text/html; charset=utf-8\n";

  $content.= "Content-Transfer-Encoding: 8bit\n\n";

  $content.= $email_body."\n";

  

  // E-Mail Anhang

  if (count($attach) > 0) {

    $data = chunk_split(base64_encode($attach['data']));

    $content.= "--".$boundary."\n";

    $content.= "Content-Disposition: attachment; filename=\"".$attach['name']."\";\n";

    $content.= "Content-Length: ".$attach['size'].";\n";

    $content.= "Content-Type: ".$attach['type']."; name=\"".$attach['name']."\"\n";

    $content.= "Content-Transfer-Encoding: base64\n\n";

    $content.= $data."\n";

  }

  

  ### Ab die Post!!

  if (!$IT_IS_SPAM && $CAPTCHA_solved){

  mail($zieladresse, $betreff, $content, $header) 

  or die("<div class='fehler'><b>Fehler:</b> Die Mail an <b>$zieladresse</b> konnte nicht versendet werden.</div>");

    // Kopie an User

    if ($KOPIE_USER){

      if (!validateEmail($email_benutzer)){

      //echo "<div class='fehler'><b>Fehler:</b> Die Mail an <b>$email_benutzer</b> konnte nicht versendet werden. E-Mail-Adresse ung&uuml;ltig!</div>";

      }

      else {

      mail($email_benutzer, $betreff, $content, $header) 

      or die("<div class='fehler'><b>Fehler:</b> Die Mail an <b>$email_benutzer</b> konnte nicht versendet werden.</div>");

      }

    }

  }

  

  // Zur Dankeseite! Captcha muss richtig gelöst werden!

  if ($CAPTCHA_solved){

  header("Location: $urlDankeSeite");

    exit;

  }

}
?>