use Email::Valid; use CGI; # use the CGI as the default output object $query = new CGI; $mailserver_primary = '198.95.10.19'; #testing only #$mailserver_primary = '205.227.165.17'; $mailserver_secondary = '198.95.10.16'; $mailserver_lastresort = '198.95.10.254'; $toaddress = "mediarelations\@lronhubbard.org"; #testing only #$toaddress = "postmaster\@scientology.net"; $fromaddress = "website-relay\@scientology.net"; $adminaddress = "postmaster\@scientology.net"; $remoteip = $ENV{'REMOTE_ADDR'}; $browsertype = $ENV{'HTTP_USER_AGENT'}; GetTime(); $logging_drive = "d:"; # the drive that it is possible to save data to $website_drive = "d:"; # the drive that contains the files that need to be read $moreinfopgfile = "$website_drive/lrh_media/eng/quotes/page02\.htm"; $name = $query->param('name'); $email = $query->param('email'); $paper = $query->param('newspaper'); if (($email ne "")) { $emailtest = Email::Valid->address($email); if ($emailtest ne "") { $email = $emailtest; } } if (($name eq "") || ($email eq "") || ($paper eq "")) { open(MOREINFOPG,$moreinfopgfile); undef $/; $moreinfohtml = ; close(MOREINFOPG); $moreinfohtml =~ s//Please ensure your name and email address are correctly entered.<\/font>/; $moreinfohtml =~ s///; $moreinfohtml =~ s///; $moreinfohtml =~ s///; print "Content-type: text/html\n\n"; # tell the web-server the type of file that is being sent print $moreinfohtml; } else { $subject_line = "LRH Media Site Quote Registration"; $moreinfodata = "http://mediaresources.lronhubbard.org/quotes/page02.htm\n\nName: $name\nEmail: $email\nNewspaper: $paper\n\nDate: $date_time_full\nUser's Browser: $browsertype\nUser's IP address: $remoteip\n\n"; $deliverstatus = EmailDeliver($mailserver_primary); if ($deliverstatus) { $success=1; } else { $deliverstatus = EmailDeliver($mailserver_secondary); if ($deliverstatus) { $success=1; } else { $errorlogfile = ">>c:\\scripterrlog.txt"; open (LOG,$errorlogfile); print LOG "Couldn't talk to any mail servers for LRH Media photo download on $date_time_full\n\n"; close (LOG); } } print "Content-type: text/html\n\n"; $downloadpagefile = "d:\\lrh_media\\eng\\quotes\\page03.htm"; open(DOWNLOADPG,$downloadpagefile); undef $/; $downloadpghtml = ; close (DOWNLOADPG); print $downloadpghtml; } sub EmailDeliver { use Net::SMTP; $maildeliver = Net::SMTP->new($_[0]); if (not($maildeliver)) { $deliverstatus=0; return($deliverstatus); } $maildeliver -> mail( $fromaddress ); if (not($maildeliver)) { $deliverstatus=0; # $emaildeliver_failedon = "Sending \"mail from\" to $_[0] failed.\n"; return($deliverstatus); } $maildeliver -> to($toaddress); if (not($maildeliver)) { $deliverstatus=0; $emaildeliver_failedon = "Sending \"rcpt to\" to $_[0] failed.\n"; return($deliverstatus); } $maildeliver ->data(); if (not($maildeliver)) { $deliverstatus=0; $emaildeliver_failedon = "Sending \"data\" to $_[0] failed.\n"; return($deliverstatus); } $maildeliver ->datasend("To: $toaddress\n"); if (not($maildeliver)) { $deliverstatus=0; $emaildeliver_failedon = "Sending \"To\" header to $_[0] failed.\n"; return($deliverstatus); } $maildeliver ->datasend("From: $fromaddress\n"); if (not($maildeliver)) { $deliverstatus=0; $emaildeliver_failedon = "Sending \"From\" header to $_[0] failed.\n"; return($deliverstatus); } $maildeliver ->datasend("Subject: $subject_line\n"); if (not($maildeliver)) { $deliverstatus=0; $emaildeliver_failedon = "Sending \"Subject\" header to $_[0] failed.\n"; return($deliverstatus); } $maildeliver ->datasend("\n"); if (not($maildeliver)) { $deliverstatus=0; $emaildeliver_failedon = "Sending newline after header to $_[0] failed.\n"; return($deliverstatus); } $maildeliver ->datasend("$moreinfodata\n"); if (not($maildeliver)) { $deliverstatus=0; $emaildeliver_failedon = "Sending body to $_[0] failed.\n"; return($deliverstatus); } $maildeliver ->dataend(); if (not($maildeliver)) { $deliverstatus=0; $emaildeliver_failedon = "Ending body to $_[0] failed.\n"; return($deliverstatus); } $maildeliver ->quit; if (not($maildeliver)) { $deliverstatus=0; $emaildeliver_failedon = "Disconnecting from $_[0] failed.\n"; return($deliverstatus); } $deliverstatus=1; return($deliverstatus); } sub GetTime { $seconds = time; @date = localtime($seconds); $year = $date[5]+1900; @months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); $month = $months[$date[4]]; $hour = $date[2]; $min = sprintf("%02d", $date[1]); $sec = sprintf("%02d", $date[0]); if ($hour >= 12) { $pm = 1; if ($hour>12) { $hour = $hour-12;} } if ($hour == 0) { $hour = 12; } $date_only = "$date[3]-$month-$year"; $date_time = "$date_only $hour:$min"; if (length($min) == 1) { $min = $min . "0";} $date_time_full = "$date_only $hour:$min:$sec"; if ($pm) { $date_time_full = $date_time_full . " PM"; } else { $date_time_full = $date_time_full . " AM"; } }