#!/usr/bin/perl # # Webschnittstelle fuer Majordomo # Alle Kommandos lassen sich per Formular auf einer Webseite # absetzen. # $| = 1; use strict; # Folgende Angaben bitte anpassen # Mailprogramm: my $mailprogram = "/usr/lib/sendmail -oi -t"; # Mailadresse Majordomo: my $mailthis = "To: majordomo\@host.domain\n"; # Ab hier nichts mehr aendern my @pairs = (); my ($buffer,$pair,$name,$value,$temp); my %FORM = (); read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; } print "Content-type: text/html\n\n"; # make sure the user entered a valid email address. $temp = $FORM{'email'}; $temp =~ s/_/a/g; $temp =~ s/-/a/g; unless ($temp =~ /\w+@\w+\.\w\w+/) { print "E-Mail-Adresse eingeben\n"; print "
\n"; print "Bitte geben Sie die vollständige E-Mail-Adresse ein.\n"; print "Bitte klicken Sie auf den \"Back\"- oder \"Zurück\"-Button Ihres Browsers.\n"; print "\n"; exit; } $mailthis .= "From: $FORM{'email'}\n"; $mailthis .= "Subject: WWW majordomo commands\n\n"; $mailthis .= "$FORM{'action'}"; if ($FORM{'list'}) { $mailthis .= " $FORM{'list'}"; } if ($FORM{'file'}) { $mailthis .= " $FORM{'file'}"; } open(MAIL,"|$mailprogram"); print MAIL "$mailthis\n"; close(MAIL); print "Danke!\n"; print "

O.K.

Die Kommandos wurden an Majordomo abgeschickt.\n"; print "

Zurück

\n"; print "\n";