Web Hosting Feedback Script
NMS FormMail is a drop-in replacement for Matt Wright's FormMail script. It converts an HTML form submission to an email message.
To make use of it, you need to write an HTML form that refers to the
FormMail script. Here's an example which will send mail to the address
'firstname.lastname@example.org' when someone submits the form:
<form method="post" action="http://your.domain/cgi-bin/FormMail.pl">
<input type="hidden" name="recipient" value="email@example.com" />
<input type="text" name="feedback" />
Please enter your comments
<input type="submit" />
See how the hidden 'recipient' input in the example above told formmail who
to send the mail to ? This is how almost all of formmail's configuration
works. Here's the full list of things you can set with hidden form inputs:
recipient - The email address to which the form submission
should be sent. If you would like it copied to
more than one recipient then you can separate
multiple email addresses with commas, for
<input type="hidden" name="recipient"
If you leave the 'recipient' field out of the
form, formmail will send to the first address
listed in the @allow_mail_to configuration
variable (see above). This allows you to avoid
putting your email address in the form, which
might be desirable if you're concerned about
address harvesters collecting it and sending
you SPAM. This feature is disabled if the
$emulate_matts_code configuration variable is
set to 1.
subject - The subject line for the email. For example:
<input type="hidden" name="subject"
value="From the feedback form" />
redirect - If this value is present it should be a URL, and
the user will be redirected there after a
successful form submission. For example:
<input type="hidden" name="redirect"
If you don't specify a redirect URL then instead
of redirecting formmail will generate a success
page telling the user that their submission was
bgcolor - The background color for the success page.
background - The URL of the background image for the success
text_color - The text color for the success page.
link_color - The link color for the success page.
vlink_color - The vlink color for the success page.
alink_color - The alink color for the success page.
title - The title for the success page.
return_link_url - The target URL for a link at the end of the
success page. This is normally used to provide
a link from the success page back to your main
page or back to the page with the form on. For
<input type="hidden" name="return_link_url"
return_link_title - The label for the return link. For example:
<input type="hidden" name="return_link_title"
value="Back to my home page" />
sort - This sets the order in which the submitted form
inputs will appear in the email and on the
success page. It can be the string 'alphabetic'
for alphabetic order, or the string "order:"
followed by a comma separated list of the input
names, for example:
<input type="hidden" name="sort"
If "order:" is used you must supply the names of
all of the fields that you want to be in the body of
the mail message.
print_config - This is mainly used for debugging, and if set it
causes formmail to include a dump of the
specified configuration settings in the email.
<input type="hidden" name="print_config"
... will include whatever values you set for
'title' and 'sort' (if any) in the email.
required - This is a list of fields that the user must fill
in before they submit the form. If they leave
any of these fields blank then they will be sent
back to the form to try again. For example:
<input type="hidden" name="required"
missing_fields_redirect - If this is set, it must be a URL, and the user
will be redirected there if any of the fields
listed in 'required' are left blank. Use this if
you want finer control over the the error that
the user see's if they miss out a field.
env_report - This is a list of the CGI environment variables
that should be included in the email. This is
useful for recording things like the IP address
of the user in the email. Any environment
variables that you want to use in 'env_report' in
any of your forms will need to be in the
@valid_ENV configuration variable described
print_blank_fields - If this is set then fields that the user left
blank will be included in the email. Normally,
blank fields are suppressed to save space.
As well as all these hidden inputs, there are a couple of non-hidden
inputs which get special treatment:
email - If one of the things you're asking the user to fill in is their
email address and you call that input 'email', formmail will use
it as the address part of the sender's email address in the
realname - If one of the things you're asking the user to fill in is their
full name and you call that input 'realname', formmail will use
it as the name part of the sender's email address in the email.