Ich nutze beigefügtes Skript lange ohne größere Probleme, bis sich beim Mailaccount technische Änderungen ergeben haben.
Ursprünglich nutze ich das Skript mit t-online als Antwortadresse. Hier funktioniert das Empfangen der ausgefüllten Formulare einwandfrei.
Bei e-plus und freenet kommt nichts mehr an . Beide Provider arbeiten mit dem ASMTP-Verfahren.
Kannst mir jemand weiterhelfen wie das Skript oder html-Formular geändert werden müssen, um mit den gesicherten Mail-Accounts ebenfalls die Antworten empfangen ?Der Autor des scripts programmiert leider nicht mehr.
Grüße,
Wolfgang
#!/usr/bin/perl
$mailprog = '/usr/sbin/sendmail';
############################################################################
#
# (c) Rene Meister (2001)
#
############################################################################
#
# metaform.pl
# COPYRIGHT NOTICE
# Copyright 2001 Rene Meister
# All Rights Reserved.
# EMail: webmaster@metaman.de
# URL : http://www.metaman.de
#
# meta.pl darf von jedermann kostenlos benutzt und geändert werden, solange
# dieser Copyright-Verweis und die restlichen Kommentare erhalten bleiben. Mit
# dem Einsatz dieses Skripts akzeptieren Sie, daß Rene Meister von jeglicher
# Haftung und Gewährleistung hinsichtlich des Einsatzes befreit ist.
#
# Der Verkauf dieses Skripts, auch in modifizierter Form, ist ohne vorherige
# Absprache ausdrücklich untersagt.
#
# Um dieses Skript über das Internet oder irgendein anderes Medium
# weiterzuverbreiten, benötigen Sie vorher meine Erlaubnis. In jeden Fall
# müssen der Copyright-Verweis und die restlichen Kommentare erhalten bleiben.
#
#
############################################################################
$formmail = "metaform.pl";
read (STDIN, $input, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $input);
foreach $pair (@pairs) {
($variable, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<([^>]|\n)*>//g;
$value =~ s/\<//g;
$value =~ s/\>//g;
$value =~ s/\|//g;
$value =~ s/\*/\\\*/g;
$value =~ s/\?/\\\?/g;
$value =~ s/\+/\\\+/g;
$FORM{$variable} = $value;
if ($variable ne "recipient" && $variable ne "redirect" && $variable ne "subject" && $variable ne "required" && $variable ne "title") { push (@form,$variable); }
}
@months = ('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
@days = ('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
($sec,$min,$hour,$mday,$mon,$year,$wday) = (localtime(time))[0,1,2,3,4,5,6];
if ($sec < 10) { $sec = "0$sec"; }
if ($min < 10) { $min = "0$min"; }
if ($hour < 10) { $hour = "0$hour"; }
if ($mday < 10) { $mday = "0$mday"; }
if ($year >= 100 && $year <= 1000 ) { $year = 2 . $year; $year -= 100; }
$date = "am $days[$wday], $mday $months[$mon] $year um $hour:$min:$sec";
if ($FORM{'email'} eq "" || $FORM{'email'} !~ /^[\w\d][\w\d\,\.\-]*\@([\w\d\-]+\.)+([a-zA-Z]{3}|[a-zA-Z]{2})$/) {
print "Content-type: text/html\n\n";
print "<html><head><title>Ungültige Emailadresse!</title></head>\n";
print "<body bgcolor=white><br><center><font size=5 color=blue>\n";
print "<b>Ungültige Emailadresse angegeben!</b></font><br><br>\n";
print "<b>Versuche es nochmal.</b><br><br><br><br><br><br>[<A HREF=\"$ENV{'HTTP_REFERER'}\">zurück</A>]</b>";
exit;
}
if ($FORM{'required'} ne "") {
@required = split (/\,/,$FORM{'required'});
foreach $variable (@required) {
if ($FORM{$variable} eq "") {
print "Content-type: text/html\n\n";
print "<html><head><title>Fehler\, Pflichtfelder wurden nicht ausgefüllt</title></head>";
print "<body bgcolor=white><br><br><br><br><br>";
print "<center>Fehler Pflichtfelder wurden nicht ausgefüllt\:<\/center><blockquote><br>";
foreach $variable (@required) {
if ($variable eq "email") {
print "Email<br>\n";
}
else { print "$variable<br>\n"; }
}
print "<\/blockquote><br><center><b>Versuche es nochmal.</b><br><br><br><br><br><br>[<A HREF=\"$ENV{'HTTP_REFERER'}\">zurück</A>]</b>";
print "<br>";
exit;
}
}
}
&email;
sub ausgabe {
if ($FORM{'redirect'} ne "" && $FORM{'redirect'} =~ /^http\:\/\//i) {
print "Pragma: no-cache\n";
print "Location: $FORM{'redirect'}\n\n";
}
else {
print "Content-type: text/html\n\n";
print "<html><head><title>Vielen Dank für Ihre Nachricht</title></head>";
print "<body bgcolor=white><br><br><CENTER>";
if ($FORM{'title'} ne "") { print "$FORM{'title'}<br>"; }
else { print "<font size=4>Vielen Dank für Ihre Nachricht<\/font><br>"; }
print "</center><br><br>\n";
print "Diese Daten wurden übermittelt:<br><br><blockquote>";
foreach $variable (@form) {
if ($variable eq "email") {
print "Email = $FORM{$variable}<br>\n";
}
else { print "$variable = $FORM{$variable}<br>\n"; }
}
print "</blockquote><br><br><center>[<A HREF=http://people.freenet.de/klock-stauden.de/welcome/welcome.htm>zurück</A>]";
print "<br>";
exit;
}
}
sub email {
open(MAIL,"|$mailprog -t");
print MAIL "To: $FORM{'recipient'}\n";
print MAIL "From: $FORM{'email'}\n";
print MAIL "Subject: $FORM{'subject'}\n\n";
print MAIL " \n";
print MAIL "Diese Daten wurden eingetragen $date\n\n";
foreach $variable (@form) {
if ($variable eq "email") {
print MAIL "Email = $FORM{$variable}\n";
}
else { print MAIL "$variable = $FORM{$variable}\n"; }
}
print MAIL " \n\n\n";
print MAIL "von dieser Email Adresse: $FORM{'email'}\n";
print MAIL "mit dieser IP Adresse: $ENV{'REMOTE_ADDR'}\n";
print MAIL " \n";
close (MAIL);
$subject =$FORM{'subject'};
open(INDEX,"subject.txt") or die "Konnte datei nicht öffenen";
@index = <INDEX>;
close(INDEX);
foreach (@index) {
chomp;
if($subject eq $_){
$textfile="$_";
&fail;
exit;
}
}
&ausgabe;
}
sub fail {
open (WELCOME, "<$textfile.txt");
$body = "";
while ($line = <WELCOME>) {
$body .= $line;
}
close (WELCOME);
open(MAIL,"|$mailprog -t");
#print MAIL "To: $FORM{'email'}\n";
print MAIL "From: $FORM{'recipient'}\n";
print MAIL "Subject: $FORM{'subject'}\n\n";
#print MAIL "$body";
#print MAIL " \n\n\n";
close (MAIL);
&ausgabe;
}
Datum: 17.02.2007-22:19
