Navigation: Home | THE LOG | Log Archives | Resume | Contact Info | Public Key | SSL | Math Applets | Site Map | RSS2 | Atom | Backend
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 = 'http://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-15 23:19:45 -04:00
Copyright 1997-2012 by Hal Canary.
mailto: halcanary at gmail dot com
http://halcanary.org