Formmailer aus Selfhtml
Carsten Riegert
- perl
Hallo, hier einmal die Anfrage eines absoluten Perlneulings. Ich bin neulich über die Seite mit dem FormmailerBeisoiel gestolpert. HAbe es gleich ausprobiert für meine Website. Ich probiere die Scripte lokal aus mit dem Server Sambar52. Leider ist bei mir keine Funktion zu erkennen, für sachdienliche hinweise wär ich sehr dankbar. Anbei die entsprechenden Listings.
Gruss und frohes Neues noch
Carsten
-----
Datei selfmai.pl im cgi-bin verzeichnis:
#!d:/sambar52/perl/perl.exe
$Sendmail_Prog = "d:/sambar52/bin/sendmail.exe";
use CGI;
$query = new CGI;
@names = $query->param;
$delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value
$mailto = $query->param('mailto'); # ---> Empfngeradresse
$returnhtml = $query->param('return'); # ---> URL fr Dankeseite
$subject = $query->param('subject'); # ---> E-Mail-Subject
$mailtext = "";
foreach(@names) {
$name = $_;
@values = "";
@values = $query->param($name);
if($name ne "mailto" && $name ne "return" && $name ne "subject" && $name ne "delimiter") {
foreach $value (@values) {
$mailtext = $mailtext.$name;
$mailtext = $mailtext.$delimiter;
$mailtext = $mailtext.$value."\n";
}
}
}
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);
print "Location: $returnhtml\n\n";
------
formularseite im docs verzeichnis:
#!d:/sambar52/perl/perl.exe
$Sendmail_Prog = "d:/sambar52/bin/sendmail.exe";
use CGI;
$query = new CGI;
@names = $query->param;
$delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value
$mailto = $query->param('mailto'); # ---> Empfngeradresse
$returnhtml = $query->param('return'); # ---> URL fr Dankeseite
$subject = $query->param('subject'); # ---> E-Mail-Subject
$mailtext = "";
foreach(@names) {
$name = $_;
@values = "";
@values = $query->param($name);
if($name ne "mailto" && $name ne "return" && $name ne "subject" && $name ne "delimiter") {
foreach $value (@values) {
$mailtext = $mailtext.$name;
$mailtext = $mailtext.$delimiter;
$mailtext = $mailtext.$value."\n";
}
}
}
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);
print "Location: $returnhtml\n\n";
hi,
-------> Dankeseite an Browser senden:
print "Location: $returnhtml\n\n";
das funktioniert nicht auf jedem Server. Besser ists so:
sub redir{
my $url = shift;
print "Status: 302 Moved\n";
print "location: $url\n\n";
}
Siehe auch http://i-netlab.de/hints/redirect.html
Rolf