#!/usr/bin/perl # # Add redirect to http refer #$ENV{'HTTP_REFERER'} #$ENV{'REMOTE_HOST'} package Response; use strict; use CGI; use IO::Pipe; use subs qw(send_mail sender_s_email create_message_body); use vars qw(@ISA); @ISA = qw(CGI); MAIN:{ my $r = new Response; my $rcpt = "samato\@bowdoin.edu"; $r->send_mail($rcpt); my $page = $r->return_to_page() ; print $r->redirect($page) ; } sub new { my $proto = shift; my $class = ref($proto) || $proto; my $self = $class->SUPER::new(); bless($self, $class); return $self; } sub send_mail { my $self = shift; my $rcpt = shift; my $email = $self->sender_s_email(); my @body = $self->create_message_body(); my $MAIL = new IO::Pipe; $MAIL->writer("/usr/lib/sendmail -t -i"); print $MAIL "From:$email\n"; print $MAIL "To:$rcpt\n"; print $MAIL "Subject: CBB Feedback Form\n"; print $MAIL "\n\n\n"; print $MAIL "@body"; $MAIL->close; undef $MAIL; } sub sender_s_email { my $self = shift; my $email; EMAIL:{ ($self->param('Email') eq "") && ( $email = "Web.User\@bowdoin.edu", last EMAIL ); (!($self->param('Email') =~ /^[\w.-]+\@([\w.-]+\.)+\w+$/)) && ( $email = $self->param('Email')."\@bowdoin.edu", last EMAIL ); $email = $self->param('Email'); } return $email; } sub create_message_body{ my $self = shift; return map {"\n".$_.":\n".$self->param($_)."\n"} $self->param; } sub return_to_page { my $self = shift; my $page = $self->param('CameFrom') ; if ($page eq "") { $page = "/" ; } return $page ; }