#!/usr/bin/perl # # feedback.cgi: Form to send mail to Robert Drudge # Author: Adrian Otto use CGI qw(-debug); use CGI::Carp qw(fatalsToBrowser); use HTML::Template; use Mail::Verify; use Text::Wrapper; use Net::SMTP; my($form_tmpl) = 'feedback.tmpl'; my($thanks_tmpl) = 'feedback_thanks.tmpl'; my($address_to) = 'andrew@breitbart.com'; #my($address_cc) = 'seth@breitbart.com'; my($recipient_name) = 'Breitbart.com Staff'; $query = new CGI; if($query->param('Send')) { foreach $required (qw(subject body from)) { unless($query->param($required)) { die "Missing required data: $required\n" } } my($email) = $query->param('from'); if(! ($email =~ /\@/)) { die "Invalid From address: '$email'. Please try again.\n"; } elsif(Mail::Verify::CheckAddress($email)) { die "Invalid From address: '$email' Please try again with your real email address this time.\n" } } else { my($template) = HTML::Template->new(filename => $form_tmpl, die_on_bad_params => 0) or die $!; $template->param('TO' => $recipient_name); # $template->param('CGI' => $ENV{'SCRIPT_NAME'}); $template->param('SCRIPT' => '/index.cgi'); print $query->header; print $template->output; # print the template exit(0); } my($wrapper) = Text::Wrapper->new; my($subject) = $query->param('subject'); my($body) = $wrapper->wrap($query->param('body')); my($from) = $query->param('from'); #open(MAIL, "|/usr/sbin/sendmail -t") # or die "Can't open the mail program"; #print MAIL "To: ${address_to}\n"; #print MAIL "From: ${from}\n"; #print MAIL "Reply-to: ${from}\n"; #print MAIL "Subject: [Web Form] ${subject}\n\n"; #print MAIL "HTTP_USER_AGENT=$ENV{'HTTP_USER_AGENT'}\n"; #print MAIL "REMOTE_ADDR=$ENV{'REMOTE_ADDR'}\n\n"; #print MAIL "$body\n"; #close(MAIL); $smtp = Net::SMTP->new('127.0.0.1') || die "Can't connect to mail server\n"; $smtp->mail(${from}); $smtp->to(${address_to}); #$smtp->cc(${address_cc}); $smtp->data(); $smtp->datasend("To: ${address_to}\n"); #$smtp->datasend("Cc: ${address_cc}\n"); $smtp->datasend("From: ${from}\n"); $smtp->datasend("Reply-to: ${from}\n"); $smtp->datasend("Subject: [Web Form] ${subject}\n\n"); $smtp->datasend("HTTP_USER_AGENT=$ENV{'HTTP_USER_AGENT'}\n"); $smtp->datasend("REMOTE_ADDR=$ENV{'REMOTE_ADDR'}\n\n"); $smtp->datasend("${body}\n"); $smtp->dataend(); $smtp->quit; unless($? == 0) { die "Sending mail failed, exit status = $?\n"; } $template = HTML::Template->new(filename => $thanks_tmpl, die_on_bad_params => 0) or die $!; $template->param('FROM' => $from); $template->param('TO' => $recipient_name); $template->param('SUBJECT' => $subject); $template->param('BODY' => $body); $template->param('SCRIPT' => '/index.cgi'); print $query->header; print $template->output; # print the template exit(0);