A CGI program for processing HTML Forms
You'll want to change the $to, $from, $subject, and $redirect variables.
By the way, you can use this code in accordance with the GNU GPL license.
#!/usr/bin/perl
## formmail
## CGI mailer.
##
## Version 1.0
##
## (c) 2002-2004 Hal Canary
## Concepts based on other cgi programs.
##
## License:
## This is free software, see
## http://www.gnu.org/licenses/gpl.txt
## This product is distributed
## WITHOUT ANY WARRANTY of any kind.
use strict;
use CGI;
require Mail::Send;
my $to = 'Hal Canary <insert@address.here>';
my $from = 'formmail.cgi <insert@address.here>';
my $subject = 'WOHC Web Form';
my $redirect = 'https://halcanary.org/';
$ENV{PATH} = "/bin:/usr/bin";
$CGI::DISABLE_UPLOADS = 1;
$CGI::POST_MAX=1024 * 100;
my $cgi = CGI->new();
my $msg = new Mail::Send;
$msg->to($to);
$msg->subject($subject);
$msg->add("From", $from);
my $fh = $msg->open;
foreach ($cgi->param) {
my $p = $_;
print $fh ($p." = ".$cgi->param($p)."\n\n");
}
$fh->close;
print "Location: $redirect\n\n";
How to use it:
<!-- form.html -->
<form method="post" action="/formmail.cgi">
<p>
What's your name?
<br />
<input size="20" value=""
name="My_name_is" type="text">
</p>
<p>
Favorite Color?
<br/>
<input value="yellow" name="fav_color_is"
type="radio">yellow
<br/>
<input value="red" name="fav_color_is"
type="radio">blue
<br/>
<input value="blue" name="fav_color_is"
type="radio">blue
</p>
<p>
Where do you live?
<br />
<input size="20" value=""
name="I_am_from" type="text">
</p>
<p>
Do you want to say anything else?
<br />
<textarea name="comments" cols="50"
rows="5"></textarea>
</p>
<p><input value="SUBMIT"
type="submit"></p>
</form>
Version 2:
#!/usr/bin/perl
## formmail
## CGI mailer.
##
## Version 2.0
##
## (c) 2002-2006 Hal Canary
## Concepts based on other cgi programs.
##
## License:
## This is free software, see
## http://www.gnu.org/licenses/gpl.txt
## This product is distributed
## WITHOUT ANY WARRANTY of any kind.
use strict;
use CGI;
require Mail::Send;
## Modify these variables for your setup:
my $to = 'Name <address@example.com>';
my $from = 'Formmail <noreply@example.com>';
my $subject = 'example.com web form';
my $redirect = 'http://example.com/';
## Use the cgi stuff.
$ENV{PATH} = "/bin:/usr/bin";
$CGI::DISABLE_UPLOADS = 1;
$CGI::POST_MAX = 1024 * 100;
my $cgi = CGI->new();
## Varify that you really came from a html form.
if (!$cgi->param()) {
if ($cgi->referer()) {
print "Location: ".$cgi->referer()."\n\n";
} else {
print "Location: ".$redirect."\n\n";
}
exit 0;
}
## Mail the information.
my $msg = new Mail::Send;
$msg->to($to);
$msg->subject($subject);
$msg->add("From", $from);
my $fh = $msg->open;
print $fh "remote_host = ".$cgi->remote_host()."\n";
print $fh "referer = ".$cgi->referer()."\n\n";
foreach my $p ($cgi->param) {
print $fh ($p." = ".$cgi->param($p)."\n\n");
}
$fh->close;
## Thank the user.
print "Content-type: text/html\n\n";
print '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html><head><title></title></head><body>
<div>Thank you for your submission.<blockquote><div>';
print "remote_host = ".$cgi->remote_host()."<br />";
print "referer = ".$cgi->referer()."<br />";
foreach my $p ($cgi->param) {
print ($p." = ".$cgi->param($p)."<br />");
}
print '</div></blockquote>';
print '<a href="'.$redirect.'">back</a>';
print '</div></body></html>';
## That is all.
file modification time: 2006-09-16 03:19:45