#!/usr/bin/perl use CGI; use Net::SMTP; use Time::Local; $query = new CGI; @subjects=( "", "Prescriptions", "Medical Enquiry", "Referral Enquiry", "Boarding Question", "Surgical Question", "Other" ); # Initial display if ( ! $query->param ) { display_form(); } elsif ( ($query->param) && $query->param('gotodispmess') =~ /^Review/i ) { display_message(); } elsif ( ($query->param) && $query->param('gotosendmail') =~ /^Submit/i ) { send_message(); } elsif ( ($query->param) && $query->param('gotoupdatemess') =~ /^Update/i ) { display_form(); } elsif ( ($query->param) && $query->param('gotocancelmess') =~ /^Cancel/i ) { $query->Delete_all(); display_form(); } elsif ( ($query->param) && $query->param('gotohome') =~ /^Home/i ) { $query->Delete_all(); display_form(); } else { $query->Delete_all(); display_form(); } sub display_form { print $query->header(-expires=>'now'); print $query->startform; print "
E-mail Countryside Veterinary Hospital\n"; my $fullname=$query->param('u_fullname'); print "
", "Full Name: " . " " x 8 , $query->textfield(-name=>'fullname', -default=>$fullname, -size=>35, -maxlength=>80), "\n"; my $smtpaddr=$query->param('u_smtpaddr'); print "
", "E-Mail Address: ", $query->textfield(-name=>'smtpaddr', -value=>$smtpaddr, -size=>35, -maxlength=>80), "\n"; my $phonenumber=$query->param('u_phonenumber'); print "
", "Phone Number: " . " " x 1 , $query->textfield(-name=>'phonenumber', -default=>$phonenumber, -size=>15, -maxlength=>80), "\n"; print "  " . $query->checkbox(-name=>"request_cb", -value=>"checked", #-align=>"right", #-position=>"right", -label=>"Callback Requested"), "\n"; my $subject=$query->param('u_subject'); print "
", "Subject:" . " " x14 , $query->scrolling_list( -name=>'subject', -default=>$subject, -values=>\@subjects, -size=>1 ), "\n"; print "
", "Your Message: "; my $smtpmess=$query->param('u_smtpmess'); print "
", $query->textarea(-name=>'smtpmess', -value=>$smtpmess, -rows=>10, -columns=>45), "\n"; print "
", $query->submit( -name=>'gotodispmess', -value=>'Review'), "  " , $query->reset('Cancel Changes'), "\n"; print $query->endform; } sub display_message { print $query->header(-expires=>'now'); print $query->startform; print "
" . "" . "Review Your Message" . "" . "\n"; print "
", "Name:  " . $query->param('fullname') . "\n"; print "
", "From:  " . $query->param('smtpaddr') . "\n"; print "
", "Phone: " . $query->param('phonenumber') . "\n"; if ( $query->param('request_cb') =~ /^checked$/ ) { print "    ", "" . "**Callback Requested" . "" . "\n"; } print "
", "Subject:  " . $query->param('subject') . "\n"; print "
", "Your Message: "; $ro_smtpmess=$query->param('smtpmess'); print "
", $query->textarea( -name=>'ro_smtpmess', -value=>$ro_smtpmess, -disabled=>disabled, -readonly=>readonly, -rows=>10, -columns=>45), "\n"; $errors=0; if ( length($query->param('fullname')) == 0 ) { print "
", "" , "Please include your full name." . "" . "\n"; $errors++; } if ( ($query->param('smtpaddr') !~ /.*?\@.*?\.(?:com|net|org|gov|edu|mil|name|info)$/i) ) { print "
", "" , "Please supply a valid e-mail address." . "" . "\n"; $errors++; } if ( length($query->param('subject')) == 0 ) { print "
", "" , "Please chose a subject catagory." . "" . "\n"; $errors++; } if ( length($query->param('smtpmess')) == 0 ) { print "
", "" . "Your message was blank, Please re-enter." . "" . "\n"; $errors++; } if ( length($query->param('phonenumber')) == 0 ) { if ( $query->param('request_cb') =~ /^checked$/ ) { print "
", "" . "Phone number required when callback checked." . "" . "\n"; $errors++; } } else { if ( ($query->param('phonenumber')) !~ /1?.?\(?\d{3}\)?.*?\d{3}.*?\d{4}$/ ) { print "
", "" . "Your phone number looks funny, Please re-enter." . "" . "\n"; if ( $query->param('request_cb') =~ /^checked$/ ) { $errors++; } } } if ( $errors ) { print "
", $query->submit( -name=>'gotoupdatemess', -value=>'Update'), "  " , $query->submit( -name=>'gotocancelmess', -value=>'Cancel'), "  " , "\n"; } else { print "
", $query->submit( -name=>'gotosendmail', -value=>'Submit'), "  " , $query->submit( -name=>'gotoupdatemess', -value=>'Update'), "  " , $query->submit( -name=>'gotocancelmess', -value=>'Cancel'), "  " , "\n"; } print $query->hidden(-name=>'u_fullname',-default=>$query->param('fullname')); print $query->hidden(-name=>'u_smtpaddr',-default=>$query->param('smtpaddr')); print $query->hidden(-name=>'u_subject',-default=>$query->param('subject')); print $query->hidden(-name=>'u_phonenumber',-default=>$query->param('phonenumber')); print $query->hidden(-name=>'u_smtpmess',-default=>$query->param('smtpmess')); print $query->hidden(-name=>'u_request_cb',-default=>$query->param('request_cb')); print $query->endform; } sub send_message { ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = localtime(time); $mon++; $year+=1900; $smtpdate="$mon/$mday/$year $hour:$min"; $helo="manypoint.com"; $to1="jdavid\@manypoint.com"; $to2="jdavid\@cvhonline.com"; $to3="vet\@cvhonline.com"; $from=$query->param('u_smtpaddr'); $name=$query->param('u_fullname'); $phone=$query->param('u_phonenumber'); $subject=$query->param('u_subject'); $smtpmess=$query->param('u_smtpmess'); $request_cb=$query->param('u_request_cb'); $message= "Subject: " . "Web Mail" . "\n" . "FullName=" . $name . "\n" . "EmailAddr=" . $from . "\n" . "PhoneNumber=" . $phone . "\n" . "Callback=" . $request_cb . "\n" . "Subject=" . $subject . "\n" . "Message=" . $smtpmess . "\n" ; $errormess=""; if ( $smtp=Net::SMTP->new('localhost') ) { $smtp->hello($helo); $smtp->mail($from); $smtp->recipient($to3); $smtp->recipient($to2); $smtp->recipient($to1); $smtp->data(); $smtp->datasend("From: $from\n"); $smtp->datasend("Date: $smtpdate\n"); $smtp->datasend("Subject: WebMail - $subject\n"); $smtp->datasend("\n"); $smtp->datasend($message); $smtp->dataend(); $smtp->quit(); } else { $errormess="Error with smtp server\n"; } print $query->header(-expires=>'now'); print $query->startform; if ( length($errormess) > 0 ) { print "
", print "$errormess\n"; } else { print "
", "Thank you, We will respond shortly.", "\n"; } print "
", $query->submit( -name=>'gotohome', -value=>'Home'), "\n"; print $query->endform; }