#!/usr/local/bin/perl
#
# form to mail to the webmaster
# author: h. falkenberg 16. aug. 1994
# changed: m. speh 23 Okt 1994
#-------------------------------------------------------------------------
# Title:
local($title)="Email to <a href=\"http://www.desy.de/user/projects/marcus.html\">Marcus Speh</a>";

# send mail to:
local($mailto)="marcus\@andersen.co.uk";

# URL path of this script:
local($scriptname)="http://www.desy.de/userWWW/cgi-bin/mail2marcus.pl";
#--- end of configuration --- 

sub send_index {
    print "Content-type: text/html\n\n";
    print "<HEAD>\n<TITLE>", $title;
    print "</TITLE>\n</HEAD>\n";
    print "<H2>$title</H2>\n";

    print "<FORM ACTION=\"$scriptname\">\n";
    print "<HR>\n";
    print "Use this form to mail your suggestions, comments or occurred problems\n";
    print "concerning the <a href=\"http://www.desy.de/general/users.html\">documents maintained by me</a> at DESY (you can also just pat me on my back :-).<p>\n";
    print "Please fill in your name, e-mail address, message and hit the \"<code>send mail</code>\" button.<p>\n";
    print "Your name: <BR><INPUT NAME=\"LASTNAME\"  SIZE=30 MAXLENGTH=40><P>\n";
    print "E-mail address:<BR><INPUT NAME=\"EMAIL\"  SIZE=30 MAXLENGTH=40><P>\n";
    print "Organization: <BR><INPUT NAME=\"ORG\"  SIZE=40 MAXLENGTH=40><P>\n";
    print "If reporting an error, URL at which it occurred:<br><INPUT NAME=\"URL\"  SIZE=60 MAXLENGTH=100><P>\n";
    print "Your message: <TEXTAREA NAME=\"MAILTEXT\"  ROWS=10 COLS=50 MAXLENGTH=500></TEXTAREA><p>\n";
    print "<HR>\n";
    print "<INPUT TYPE=\"submit\" VALUE=\" send mail \">\n";
    print "<INPUT TYPE=\"reset\" VALUE=\"Clear form\">\n";
    print "</FORM>\n";
    print "</BODY>\n";
}

sub doit {
    do { &'send_index; return; } unless (length($ENV{"QUERY_STRING"})>0);
    local(@query_strings) = split("&", $ENV{"QUERY_STRING"});
    foreach $q (@query_strings) {
      ($attr, $val) = split("=", $q);
      # this is still just a hack..
      $val =~ s/%20/ /g;
      $val =~ s/%21/!/g;
      $val =~ s/%22/"/g;
      $val =~ s/%23/#/g;
      $val =~ s/%24/\$/g;
      $val =~ s/%25/%/g;
      $val =~ s/%26/&/g;
      $val =~ s/%27/"/g;
      $val =~ s/%28/(/g;
      $val =~ s/%29/)/g;
      $val =~ s/%2C/,/g;
      $val =~ s/%2F/\//g;
      $val =~ s/%3B/;/g;
      $val =~ s/%3F/?/g;
      $val =~ s/%3D/=/g;
      $val =~ s/%5B/[/g;
      $val =~ s/%5D/]/g;
      $val =~ s/%5E/^/g;
      $val =~ s/%7B/{/g;
      $val =~ s/%7D/}/g;
      $val =~ s/%5C/\\/g;
      $val =~ s/%3C/</g;
      $val =~ s/\+/ /g;
      $val =~ s/^\s//;
      $val =~ s/%(..)/pack("c",hex($1))/ge;
      $queryvals{$attr} = $val;
    }

    $lastname = $query = $queryvals{LASTNAME};
    $mailtext = $queryvals{MAILTEXT};
    $email = $queryvals{EMAIL};
    $org = $queryvals{ORG};
    $url = $queryvals{URL};

    print "Content-type: text/html\n\n";

    print "<HEAD>\n<TITLE>Email to Marcus Speh on user documents";
    print "</TITLE>\n</HEAD>\n";
    print "<BODY>\n<H1>", $title, "</H1>\n";

 ### check "does mail look like an address etc
 
    if($lastname eq "" || $email eq ""){
      print "No mail sent. Reason:<BR>\n";
      print "<UL>\n";
      if($lastname eq ""){
        print "<LI>You did not give a lastname!<BR>\n";
      }      
      if($email eq ""){
        print "<LI>You did not give your email!<BR>\n";
      }
      print "</UL>\n";
    } else {    
      local($pid)=open(MAIL,"|/usr/lib/sendmail -t ");
      print MAIL "to: $mailto \n";
      print MAIL "subject: Comments on user/projects/* documents. \n";
      print MAIL "This mail was send to Marcus Speh.\n";
      print MAIL "Name: $lastname\n";
      print MAIL "E-mail address: $email\n";
      print MAIL "Organisation: $org\n";
      print MAIL "Referring to URL: $url\n";
      print MAIL "\n $mailtext \n";
      close(MAIL);

      print "This mail was sent:<BR>\n"; 
      print "Name = $lastname<BR>\n";
      print "E-mail address = $email<BR>\n";
      print "Organisation = $org<BR>\n";
      print "Referring to URL = $url<BR>\n";
      print "$mailtext<BR>\n";
    }
 
    print "</BODY>\n";
}

&doit();
