#!/usr/bin/perl use strict; # # Mail-Formular fuer die Webseite # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # # Aufruf: /cgi-bin/fmail.cgi?recipient= # # Dem User wir ein Formular zur Texteingabe angeboten, das dann # an @Maildomain geschickt wird. So erscheint die Mailadresse # nirgends auf der Webseite (Spam-Schutz). # # Folgende Variablen muessen geaendert werden # Mailprogramm (in der Regel sendmail -oi -t) my $mailprog = '/usr/lib/sendmail -oi -t'; # Absenderadresse der Mail my $From = 'Webformular@ee.fhm.edu'; # URL der Homepage. Formulare werden mit #
angesprochen. my $homeurl = 'http://www.ee.fhm.edu'; # Maildomain: der '@' und alles, was dahinter kommt my $Maildomain = 'ee.fhm.edu'; # Ab hier muss eigentlich nichts mehr geandert werden ####################################################################### my %FORM = (); my @pairs; my $buffer = ''; my $recipient = ''; my $comments = ''; my $sender = ''; my $script_url = $ENV{'SCRIPT_NAME'}; # Dokumenten-Kopf print "Content-type: text/html\n\n"; print qq~ E-Mail-Formular ~; # Get the input if ($ENV{'REQUEST_METHOD'} eq 'GET') {@pairs = split(/&/, $ENV{'QUERY_STRING'});} elsif ($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); } foreach my $pair (@pairs) { my ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; } $recipient = $FORM{'recipient'} if (defined($FORM{'recipient'})); $comments = $FORM{'comments'} if (defined($FORM{'comments'})); $sender = $FORM{'username'} .' (' . $FORM{'realname'} . ')'; # Wenn kein Empfaenger angegeben, falscher Aufruf if ($recipient eq '') { print qq~

Fehler

Kein Empfänger angegeben. ~; } # Falls die Antwort leer ist, Formular ausgeben elsif ($comments eq '') { print qq~

E-Mail-Nachricht versenden

Mit diesem Formular können Sie eine E-Mail an $recipient schicken.

Ihre E-Mail-Adresse:
Ihr Name:

Hier bitte Ihren Text eingeben:

~; } else { print qq~

Mail wurde verschickt

Vielen Dank für Ihren Kommentar. Er wird per E-Mail an $recipient geschickt!

Zurück

~; # Jetzt E-Mail an $recipient senden, erst Adresse basteln $recipient = $recipient . '@' . $Maildomain; open (MAIL, "|$mailprog") || die "Can't open $mailprog!\n"; print MAIL "From: $From\n"; print MAIL "To: $recipient\n"; print MAIL "Subject: Formular-Mail via Webseite\n"; print MAIL "Mime-Version: 1.0\n"; print MAIL "Content-Type: text/plain; charset=iso-8859-1\n"; print MAIL "Content-Transfer-Encoding: 8bit\n"; print MAIL "Reply-to: $sender\n"; print MAIL "\n"; print MAIL "$sender schrieb:\n\n"; print MAIL "$comments"; close (MAIL); }