[1] #!/usr/bin/perl

[2] #-----------------------------------------------------------
      # Form-mail.pl, von Reuven M. Lerner
      # (reiven@the-tech.mit.edu).
      # Das Copyright fr dieses Paket ist 1994 The Tech.
      # Das Paket wurde von Matt Wright zu einem mail arbitrary-
      # Form umgewandelt (mattw@alpha.prl.k12.co.us)

      # FormMail ist eine freie Software; Sie knnen Sie verbreiten
      # und/oder modifizieren. Dabei gelten die Bedingungen von GNU
      # General Public License  wie von der Free Software
      # Foundation verffentlicht. Das gilt sowohl fr die
      # Version 2, als auch (wenn Sie wollen) fr jede sptere
      # Version.

      # Die Verbreitung von FormMail erfolgt zwar in der Hoffnung,
      # da es ntzlich sein wird, aber OHNE JEDE GARANTIE 
      # ebenfalls ohne die kaufmnnische Implementierungsgarantie
      # oder die Fhigkeit fr einen bestimmten Zweck. Weitere
      # Details finden Sie in der GNU General Public License.

      # Eine Kopie der GNU General Public License sollten Sie
      # zusammen mit FormMail erhalten haben; sehen Sie in der
      # Datei COPYING nach. Falls nicht, schreiben Sie an die
      # Free Software Foundation, 675 Mass Ave, Cambridge,
      # MA 02139, USA.
      # --------------------------------------------------------

      ###################################################
      # FormMail
      # Erstellt von Matt Wright (mattw@alpha.prl.k12.co.us)
......# Erstellungsdatum 9.6.95          Letzte nderung 12.12.96
      # Version 1.2

[3]   # Variablen definieren
      $mailprog = '/usr/lib/sendmail';
      $date = '/usr/bin/date'; chop($date);

[4]   # Eingabe holen
      read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

      # Die Name/Wert-Paare teilen
      @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;
          $name =~ tr/+/ /;
          $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

          $FORM{$name} = $value;
      }

[5]   if ($FORM{'redirect'}) {
          print "Standord: $FORM{'redirect'}\n\n";
      }
      else {
          # Print Return HTML
          print "Content-type: text/html\n\n";
          print "<html><head><title>Vielen Dank</title></head>\n";
          print "<body><h1>Vielen Dank, da Sie dieses Form ausgefllt haben</h1>\n";
          print "Danke, da Sie sich die Zeit zum Ausfllen meines Antwortformulars "
          print "genommen haben. Untenstehend das, was Sie an $FORM{'recipient'} ";
          print "bermittelt haben ";
          print "$date<hr>\n";
      }

[6]   # Das Mail ffnen
      open(MAIL, "|$mailprog -t") || die "Kann nicht ffnen $mailprog!\n";
      print MAIL "Nach: $FORM{'recipient'}\n";
      print MAIL "Von: $FORM{'email'} ($FORM{'realname'})\n";
      if ($FORM{'subject'}) {
       print MAIL "Betrifft: $FORM{'subject'}\n\n";
      }
      else {
         print MAIL "Betrifft: WWW Form-bermittlung\n\n";
      }
      print MAIL "Es folgt das Ergebnis Ihres Antwortformulars. Es wurde\n";
      print Mail "bermittelt von $FORM{'realname'} ($FORM{'email'}) am $date\n";
      print MAIL "------------------------------------------\n";

[7]   foreach $pair (@pairs) {
        ($name, $value) = split(/=/, $pair);

        $value =~ tr/+/ /;
        $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
        $name =~ tr/+/ /;
        $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

        $FORM{$name} = $value;
          unless ($name eq 'recipient' || $name eq 'subject' || $name eq 'email' ||
                   $name eq 'realname' || $name eq 'redirect') {
            # Gib das Mail fr jedes Name/Wert-Paar aus
            print MAIL "$name:  $value\n";
            print MAIL "______________________________\n\n";

            unless ($FORM{'redirect'}) { # Schicke HTML fr Name/Wert-Paare zurck.
               print "$name = $value<br>\n";
            }
         }
      }
      close (MAIL);

      unless ($FORM{'redirect'}) {
         print "</body></html>";
}

