<?php
// Datei-Anhang \\
/*
Das Array $contenttypes dient zur identifizierung des MIME-Typs des Anhanges.
Es beinhaltet den MIME-Typ, die Codierung und eine Beschreibung dazu. Die
Codierung ist hierbei sehr wichtig, da binaere Daten im base64-Format versendet
werden muessen (siehe http://www.php3-forum.de/mime_mail.htm)
*/
$contenttypes = array(
"text/plain" => array("encoding"=>"8bit" ,"info"=>"purer Text"),
"text/html" => array("encoding"=>"8bit" ,"info"=>"HTML-Dokument"),
"image/gif" => array("encoding"=>"base64","info"=>"Bild: GIF"),
"image/jpeg" => array("encoding"=>"base64","info"=>"Bild: JPEG"),
"image/png" => array("encoding"=>"base64","info"=>"Bild: PNG"),
"application/x-zip-compressed" => array("encoding"=>"base64","info"=>"Komprimiert: ZIP"),
"application/x-gzip" => array("encoding"=>"base64","info"=>"Komprimiert: GZ"),
"application/x-tar" => array("encoding"=>"base64","info"=>"Komprimiert: TAR")
);
/* Wenn eine Datei als Anhang ausgewaelt wurde... */
if($anhang=="yes" && $dateiname && $datei && $datei != "none") {
/* Lese die temporaere Datei, die der Benutzer hochgeladen hat aus */
$datei_content = fread(fopen($datei,"r"),filesize($datei));
/* Codiere Datei ins BASE64-Format, falls noetig */
if($contenttypes[$anhang_content_type][encoding]=="base64") $datei_content = chunk_split(base64_encode($datei_content));
else $datei_content = $datei_content;
/* Generiere einen Boundary */
$boundary = strtoupper(md5(uniqid(time())));
/* Beginne den Mail-Header mit MIMe-mail-Header */
/* (siehe http://www.php3-forum.de/mime_mail.htm) */
$mail_header .= "\nMIME-Version: 1.0";
$mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
$mail_header .= "\n\nThis is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format";
/* Hier faengt der normale Mail-Text an */
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: $content_type";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n$mail_content";
/* Hier faengt der Datei-Anhang an */
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: $anhang_content_type; name=\"$dateiname\"";
/* Lese aus dem Array $contenttypes die Codierung fuer den MIME-Typ des Anhangs aus */
$mail_header .= "\nContent-Transfer-Encoding: ".$contenttypes[$anhang_content_type][encoding];
$mail_header .= "\nContent-Disposition: attachment; filename=\"$dateiname\"";
$mail_header .= "\n\n$datei_content";
/* Gibt das Ende der eMail aus */
$mail_header .= "\n--$boundary--";
} else {
$mail_header .= "\nContent-Type: $content_type";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n".$mail_content;
}
else {
/*
Lese aus dem Array $contenttypes mit den MIME-Typen die Daten aus und
generiere eine Drop-Down-Liste
*/
reset($contenttypes);
$key=key($contenttypes);
while($key != "" || $key=="0") {
echo "<OPTION VALUE=\"$key\">".$contenttypes[$key][info];
next($contenttypes);
$key=key($contenttypes);
}
// wenn das Formular übermittelt wurde
if(isset($_POST['abschicken'])){
while(list($feld,$wert)=each($HTTP_POST_VARS)){
// übermittelte Inhalte "entschärfen"
$wert=preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "",$wert);
$$feld=$wert;
// die übermittelten Variablen werden zum "Text der Email" zusammengefasst
if($feld!="abschicken"){
$mailnachricht.=ucfirst($feld).": $wert\n";
}
}
// sind keine Fehler vorhanden, wird die Email versendet
else {
$mailbetreff="Feedback ".$_SERVER['HTTP_HOST'];
}
// E-mail Layout \\
// HIER DIE EMPFÄNGER EMAIL-ADRESSE ANPASSEN!!!
if(mail("mailto:admin.arudc@mymail.ch", $mailbetreff, $mailnachricht, "From: $email")){
echo "<p>Vielen Dank für Ihre e-mail!</p>";
} else {
echo "<p>Ein Fehler ist aufgetreten!</p>";
}
// Datei-Anhang \\
/*
Das Array $contenttypes dient zur identifizierung des MIME-Typs des Anhanges.
Es beinhaltet den MIME-Typ, die Codierung und eine Beschreibung dazu. Die
Codierung ist hierbei sehr wichtig, da binaere Daten im base64-Format versendet
werden muessen (siehe http://www.php3-forum.de/mime_mail.htm)
*/
$contenttypes = array(
"text/plain" => array("encoding"=>"8bit" ,"info"=>"purer Text"),
"text/html" => array("encoding"=>"8bit" ,"info"=>"HTML-Dokument"),
"image/gif" => array("encoding"=>"base64","info"=>"Bild: GIF"),
"image/jpeg" => array("encoding"=>"base64","info"=>"Bild: JPEG"),
"image/png" => array("encoding"=>"base64","info"=>"Bild: PNG"),
"application/x-zip-compressed" => array("encoding"=>"base64","info"=>"Komprimiert: ZIP"),
"application/x-gzip" => array("encoding"=>"base64","info"=>"Komprimiert: GZ"),
"application/x-tar" => array("encoding"=>"base64","info"=>"Komprimiert: TAR")
);
/* Wenn eine Datei als Anhang ausgewaelt wurde... */
if($anhang=="yes" && $dateiname && $datei && $datei != "none") {
/* Lese die temporaere Datei, die der Benutzer hochgeladen hat aus */
$datei_content = fread(fopen($datei,"r"),filesize($datei));
/* Codiere Datei ins BASE64-Format, falls noetig */
if($contenttypes[$anhang_content_type][encoding]=="base64") $datei_content = chunk_split(base64_encode($datei_content));
else $datei_content = $datei_content;
/* Generiere einen Boundary */
$boundary = strtoupper(md5(uniqid(time())));
/* Beginne den Mail-Header mit MIMe-mail-Header */
/* (siehe http://www.php3-forum.de/mime_mail.htm) */
$mail_header .= "\nMIME-Version: 1.0";
$mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
$mail_header .= "\n\nThis is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format";
/* Hier faengt der normale Mail-Text an */
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: $content_type";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n$mail_content";
/* Hier faengt der Datei-Anhang an */
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: $anhang_content_type; name=\"$dateiname\"";
/* Lese aus dem Array $contenttypes die Codierung fuer den MIME-Typ des Anhangs aus */
$mail_header .= "\nContent-Transfer-Encoding: ".$contenttypes[$anhang_content_type][encoding];
$mail_header .= "\nContent-Disposition: attachment; filename=\"$dateiname\"";
$mail_header .= "\n\n$datei_content";
/* Gibt das Ende der eMail aus */
$mail_header .= "\n--$boundary--";
} else {
$mail_header .= "\nContent-Type: $content_type";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n".$mail_content;
}
else {
/*
Lese aus dem Array $contenttypes mit den MIME-Typen die Daten aus und
generiere eine Drop-Down-Liste
*/
reset($contenttypes);
$key=key($contenttypes);
while($key != "" || $key=="0") {
echo "<OPTION VALUE=\"$key\">".$contenttypes[$key][info];
next($contenttypes);
$key=key($contenttypes);
}
}
// Pflichtfelder festlegen
(if ($_REQUEST['anrede,vorname,nachname,betreff,kommentar']))
// Überprüfen ob alle Pflichtfelder gefüllt sind
empty($anrede) ? $err[] = "<p>- Bitte die Anrede angeben.</p>" : false;
empty($vorname) ? $err[] = "<p>- Bitte den Vornamen angeben.</p>" : false;
empty($nachname) ? $err[] = "<p>- Bitte den Nachnamen angeben.</p>" : false;
empty($e-mail) ? $err[] = "<p>- Bitte die e-mail Adresse angeben.</p>" : false;
empty($betreff) ? $err[] = "<p>- Bitte den Betreff angeben.</p>" : false;
empty($kommentar) ? $err[] = "<p>- Bitte einen Kommentar schreiben.</p>" : false;
empty($captcha) ? $err[] = "<p>- Bitte die Wörter eintippen.</p>" : false;
// wenn nicht, werden die Fehlermeldungen ausgegeben und das "halbgefüllte" Formular angezeigt
if(!empty($err)) {
echo "<p>Bitte korrigieren Sie folgende Fehler:</p>";
foreach($err as $fehler){
echo $fehler;
?>