#! c:/perl/bin/perl.exe use strict; use CGI; use Net::SMTP; my $q = new CGI; my $smtp = Net::SMTP->new('localhost'); my $address = "webmaster/@rc3.org"; my $err = ""; my ($from, $subject, $body); if (!$q->param()) { &print_page_start; &print_form; &print_page_end; } else { &set_form_vars; if (!&validate_form) { &send_email; &print_page_start; &print_success; &print_page_end; } else { &print_page_start; &print_error_message; &print_form; &print_page_end; } } sub print_page_start { print $q->header, $q->start_html('Email Form'); } sub print_page_end { print $q->end_html; } sub set_form_vars { $from = $q->param('from'); $subject = $q->param('subject'); $body = $q->param('body'); } sub print_form { print $q->start_form, "<em>Your E-mail address: <em><br>", $q->textfield(-name=>'from', -default=>"$from"), $q->p, "<em>Email Subject:<em><br>", $q->textfield(-name=>'subject', -default=>"$subject"), $q->p, "<em>Email body: <em><br>", $q->textarea(-name=>'body'), $q->p, $q->submit('submitbtn', 'Send Email'), $q->end_form; } sub validate_form { if (!$subject) { $err .= "<li>no subject.</li>/n"; } if (!$from) { $err .= "<li>no recipient. </li>/n"; } if ($from !~ /^[/w/.]+/@[/w/.]+$/) { $err .= "<li>invalid email address. </li>/n"; } if (!$body) { $err .= "<li>no msg body?! </li>/n"; } return $err; } sub print_error_message { print "error occur./n"; print "<ul>$err</ul>/n"; } sub print_success { print "<p>An email with subject /"$subject/" was sent to $address </p>/n"; } sub send_email { $smtp->mail($from); $smtp->to($address); $smtp->data(); $smtp->datasend("From: $from/n"); $smtp->datasend("To: $address/n"); $smtp->datasend("Subject: $subject/n"); $smtp->datasend("/n"); $smtp->datasend("$body"); $smtp->dataend(); $smtp->quit(); }
Web Mail Cgi
最新推荐文章于 2021-01-09 19:58:55 发布