#!/usr/bin/perl
use strict;
use CGI qw(cgi);

my $cgi = new CGI;
my $to = $cgi->param('TO');
my $name = $cgi->param('NAME'); 
my $email = $cgi->param('EMAIL');
my $url = $cgi->param('URL'); 
my $subject = $cgi->param('SUBJECT');
my $message = $cgi->param('MESSAGE');

# Check for Errors
my @errors = ();

  if($message eq "") { push @errors, "No message text.\n"; }
  unless($to =~ /^\S+?\@\S+?\.\S+?$/) { push @errors, "Invalid recipient specified.\n"; }  
#  if($name eq "") { push @errors, "No Name.\n"; }
  unless($email eq "") { unless($email =~ /\S+?\@\S+/o) {
  push @errors, "Invalid email address.\n"; 
  } }
unless($url eq "") { unless($url =~ /^http\:\/\/\S+/) { 
  push @errors, "Invalid URL.\n"; 
  } }

unless($#errors == -1) {
  print $cgi->header;
  &error(@errors); die; }
else {
open (MAIL, "|/usr/lib/sendmail -t $to") or error("Sorry, cannot send mail!");

print MAIL "From: $name <$email>\n";
print MAIL "To: $to\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$message\n\n";
print MAIL "Client Environment:\n\n";
print MAIL "CGI PATH:", $cgi->url(-absolute=>1), "\n";
print MAIL "REFERER PAGE:", $cgi->referer(), "\n";
print MAIL "FROM HOST:", $cgi->remote_host(), "\n";
print MAIL "BROWSER:", $cgi->user_agent(), "\n";
close MAIL;

### Print a thank-you page
print $cgi->header(-expires=>'now');
print<<"XXX";
<HTML><HEAD><TITLE>Thanks for the mail</TITLE></HEAD>
<BODY BGCOLOR=white><TABLE WIDTH=100%><TR><TD VALIGN=top BGCOLOR=#eeeeee>
Thanks, your message to $to 
XXX

if($subject ne "") { print "regarding $subject "; }

print " has been sent.<P>";
print " <A HREF=\"", $cgi->referer(), "\"><B>Click here to return</B></A>";
print "</TD></TH></TABLE></BODY></HTML>";
}
              

sub error {
my @errors = @_;
print<<"ENDX";
<HTML><HEAD><TITLE>Feedback Error</TITLE>
</HEAD>
<BODY>
Your message could not be send because of the following errors...
<OL>
ENDX

foreach $_ (@errors) { print "<LI>", $_; }

print "<A HREF=\"", $MAIN::cgi->referer(), "\">Return</A>";
print "</BODY></HTML>";
}