#!/usr/bin/perl # # print header stuff # print "Content-type: text/html", "\n\n"; print "<html>"; print "<body background=\"nevada.gif\">"; # #define stuff to send email with # require TripodMail; $mail = new TripodMail; # #define stuff to grab data entered on form # require TripodCGI; use CGI; $cgi = new CGI; # #get users email address, subject of letter and letters text # # # $formname name of disk file with model on how to send email # this file must exist or we cant send the email # $formname=$cgi->param('formname'); $replyto=$cgi->param('replyto'); $frommail=$cgi->param('frommail'); $subject=$cgi->param('subject'); $text=$cgi->param('text'); $title=$cgi->param('title'); $file_prefix=$cgi->param('file_prefix'); $thefile=$cgi->param('thefile'); $debugflag=$cgi->param('debugflag'); if ($debugflag eq 'y' ) { print "debug_flag='$debugflag'<br>"; print "formname='$formname'<br>"; print "replyto='$replyto'<br>"; print "frommail='$frommail'<br>"; print "subject='$subject'<br>"; print "text='$text'<br>"; print "title='$title'<br>"; print "the_file='$the_file'<br>"; print "thefile='$thefile'<br>"; } $errors=0; if ( ! -e $formname ) { print "ERROR mail form file '$formname' does not exist<p>"; print "ERROR to fix either<p>"; print "<ol>"; print "<li>Some idiot deleted the file $formname so someone must recreate the file"; print "<li>The program has a bug and you must get the programmer to fix it."; print "</ol>"; $errors++; } if ( ! -e $thefile ) { print "ERROR mail form file '$thefile' does not exist<p>"; print "ERROR thats odd because the script that calls this program does a ls $filename<p>"; print "ERROR your probably calling this program out of sequence<p>"; $errors++; } # #if the variable $text is null or blank # its the 1st time the program has been run # and we must display the form, or the # user has clicked on the submit button with # out entering any text. againg we must display the # form if ($text =~ /^ *$/ ) { print "ERROR no text entered. \$text is blank<p>"; $errors++; } if ($debugflag eq 'y' ) { print "validate user inputs<p>"; } #if $text is not blank or null they entered #some text they want to send as an email #dont let them send the email if # $subject is blank # $from is blank # $frommail=~s/ //g; $replyto=~s/ //g; #if ($frommail =~ /^snail\@aztec.asu.edu$/ ) { if ($frommail =~ /snail\@aztec[0-9]*.asu.edu/i ) { $errors++; for ($i=0;$i<5000;$i++) { print "Dont't FUCK with the snail<p>"; } print "</html>"; exit; } if ($frommail =~ /^ *$/ ) { $errors++; print "You must enter a From: address<p>"; } else { if ($frommail !~ /[^@]@[^@]/ ) { $errors++; print "From: address must contain an @ surronded by userid and server<p>"; print "'$frommail' is invalid<p>"; } } # #if a Reply-To: address was entered valiate it # if ($replyto !~ /^ *$/i ) { if ($replyto !~ /[^@]@[^@]/ ) { $errors++; print "Reply-TO: address must contain an @ surronded by userid and server<p>"; print "'$replyto' is invalid<p>"; } if ($replyto =~ /snail\@aztec[0-9]*.asu.edu/i ) { $errors++; for ($i=0;$i<5000;$i++) { print "Dont't FUCK with the snail<p>"; } print "</html>"; exit; } } if ($subject =~ /^ *$/ ) { $errors++; print "You must enter a subject<p>"; } if ($errors > 0 ) { print "you had errors!!!<p>"; print "</html>"; exit; } open(BCC,$thefile) or print "ERROR cant open '$thefile'<p>"; # # read in all the names to bcc # @bcc=<BCC>; close(BCC); # #for each name make a line that says # BCC: name # if ( $replyto =~ /^ *$/ ) { $bcc=""; } else { $bcc="Reply-To: $replyto\n"; } $i=0; foreach $x (@bcc) { $i++; $bcc=$bcc."BCC: $x"; } # # print the names in debug mode # if ($debugflag eq 'y' ) { print "bcc list=<p><pre>"; print "$bcc"; print "</pre>"; } # #build the stinking hash which is used by #the tripod software to send the email # %hash = ( 'frommail', $frommail , 'bcc', $bcc , 'subject', $subject , 'text', $text ); # #use one stinking back slash for the \%hash # if ($debugflag eq 'y' ) { print "before sendmail<p>"; } # #send the stinking email # $rc=$mail->sendMail($formname,\%hash); if ($rc == 1 ) { print "Mail has been sent to $i email addresses in the file $thefile<p>"; print "The addresses are:<p>"; foreach $x (@bcc) { print "$x<br>\n"; } } else { print "<h3>Somethings Fucked Up</h3>"; print "<h3>Try Again</h3>"; print "<p>"; print "Error sending Mail to addresss in file $thefile<p>"; print "Error rc=$rc <p>"; } print "</html>"; exit;