#!/usr/bin/perl 

$mailprog = '/bin/sendmail';
@months = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec);
@tstamp = localtime(time); 
#tstamp = ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)
$date = $tstamp[3] . "-" . $months[$tstamp[4]] . "-" . $tstamp[5];
$date .= " " . $tstamp[2] . ":" . $tstamp[1];

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))/ge;
    $name =~ tr/+/ /;
    $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("c", hex($1))/ge;
    $cgiarray{$name} = $value;
    push (@names,$name);
    push (@values,$value);
}

$target = $cgiarray{'recipient'};
if ($target eq "") {
  &safe_die("No Recipient Given!\n");
  }

if ($cgiarray{'username'} eq "") {
  $cgiarray{'username'} = "No-Email-Given\@nowhere.none";
  }

open (MAIL, "|$mailprog -t") || die("Can't open $mailprog!\n");
print MAIL "From: $cgiarray{'username'}\n";
print MAIL "Reply-To: $cgiarray('username'}\n";
print MAIL "To: $cgiarray('recipient')\n";
print MAIL "Subject: $cgiarray{'subject'}\n\n";
print MAIL "Information submitted on $date\n";
print MAIL "------------------------------------------------------\n\n";

for ($i=0; $i<=$#names; $i++) 
{
  print MAIL "$names[$i]:  $values[$i]\n";
}
close (MAIL);

print "Location: $cgiarray{'thankurl'}\n\n";

# end of main procedure

sub safe_die {
   print "Content-type: text/plain\n\n";
   print @_,"\n";
   exit(0);
}