#!/usr/bin/perl
# Der Pfad zu Ihrem Mailprogramm
$mailprog = '/usr/sbin/sendmail';
# Der Pfad zu Ihren Date-Kommando
$date = '/usr/bin/date';
# An welche URL soll der User geleitet werden, wenn er seine Mail
# geschrieben hat?
$returnurl = "http://www.ihredomain.de/";
# Zeitspanne in Sek nach der weitergeleitet wird zu obiger URL
$weiterleitungszeit = 5;
# E-Mail des Empfängers UNBEDINGT den \ vor dem @ notieren
@email_liste = ("webmaster\@ihredomain.de","privat\@mailadresse.de");
###################################################
read(STDIN, $input, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $input);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
###################################################
# Hier JEDES Formularelement eintragen was in dem Formular
# vorkommt von welchem der User absendet
# Die Reihenfolge spielt hier keine Rolle
$empfaenger = $FORM{'empfaenger'};
$subject = $FORM{'subject'};
$name = $FORM{'name'};
$vorname = $FORM{'vorname'};
$mailadresse = $FORM{'mailadresse'};
$anfragetext = $FORM{'anfragetext'};
###################################################
# Liste der Pflichtfelder die der Absender ausfuellen muss.
# Kann beliebig angepasst werden
# Fehlerbehandlung Anfang
$fehlermeldung = "" ;
$fehler_gefunden = "" ;
$errormeldung = "<li>Das Feld Name wurde nicht ausgefüllt.\n" ;
if ($name eq "") {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Das Feld Vorname wurde nicht ausgefüllt.\n" ;
if ($vorname eq "") {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Bitte geben Sie eine gültige E-Mail Adresse ein.\n" ;
if ($mailadresse !~ /.+\@.+\..+/) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Das Feld E-Mail wurde nicht ausgefüllt.\n" ;
if ($mailadresse eq "") {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
if ($fehler_gefunden) {
&fehlerausgabe; }
# Fehlerbehandlung Ende
###################################################
&datumsausgabe;
&mailsenden;
&bestaetigung;
sub mailsenden {
open (MAIL, "|$mailprog -t") || die $!;
print MAIL "To: $email_liste[$empfaenger]\n";
print MAIL "From: $vorname $name\n";
print MAIL "Subject: $subject\n\n";
print MAIL "Eine Anfrage von ihrem Feedbackformular\n";
print MAIL "Name: $name \n";
print MAIL "Vorname: $vorname\n";
print MAIL "E-Mail: $mailadresse\n";
print MAIL "==================================\n";
print MAIL "Anfragetext:\n";
print MAIL "$anfragetext\n";
print MAIL "==================================\n\n";
print MAIL "Gesendet um: $datum\n";
close(MAIL);
}
###################################################
sub datumsausgabe {
# Datumsroutine
@tage = ('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
@monate = ('Januar','Februar','Maerz','April','Mai','Juni','Juli','August',
'September','Oktober','November','Dezember');
($sec, $min, $stunde, $mtag, $mon, $jahr, $tag, $nr_tag, $isdst) = localtime(time);
if($stunde < 10) { $stunde = "0$stunde"; }
if ($min < 10) { $min = "0$min"; }
if ($sec < 10) { $sec = "0$sec"; }
$jahr = 1900 + $jahr;
$datum = "$stunde:$min Uhr $tage[$tag], $mtag. $monate[$mon] , $jahr";
}
###################################################
sub bestaetigung {
print "Content-type: text/html\n\n";
print <<"ENDE"
<html>
<head>
<title>Danke!</title>
<meta http-equiv="refresh" content="$weiterleitungszeit; URL=$returnurl">
</head>
<body>
<div align=center><table bgcolor=#F2F2F2 width=500 cellspacing=4 cellpadding=4><tr><td>
<font size=2 face=verdana, Arial><b>Vielen Dank!</b><br>
Vielen Dank Herr/Frau $vorname $name, für Ihre Anfrage.<br>
Sie werden in $weiterleitungszeit Sekunden weitergeleitet,<br>
falls nicht, klicken Sie bitte untenstehen Link.<br>
<a href="$returnurl">Zurück zur Hauptseite</a></font></p>
</td></tr></table></div></body>
</html>
ENDE
}
###################################################
sub fehlerausgabe {
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<title>Fehler aufgetreten</title>\n";
print "</head>\n";
print "<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#0000FF\">\n";
print "<div align=\"center\">\n";
print "<table bgcolor=\"#800000\" width=\"500\" cellspacing=\"1\" cellpadding=\"0\" border=\"0\">\n";
print "<tr><td>\n";
print "<table bgcolor=\"#F1F1F1\" width=\"500\" cellspacing=\"0\" cellpadding=\"4\" border=\"0\">\n";
print "<tr>\n";
print "<td><font face=\"Verdana, Arial\" size=\"2\">\n";
print "Beim ausfüllen haben Sie folgendes vergessen:<ol> <b>$fehlermeldung</b>\n";
print "</ol><br>\n";
print "Bitte gehen Sie zurück und versuchen es erneut!<br><br>\n";
print "</font></td></tr></table></td></tr></table></div></body></html>\n";
exit;
}
###################################################
|