Design Goals
- Allow email to be sent to a list of known email addresses through a web interface.
- Prevent email from being sent to other addresses.
- Never reveal email addresses through the web interface.
- Contain no cross site scripting (XSS) vulnerabilities.
- Do not allow arbitrary code to be run on the host.
- Provide adequate information in email headers to trace any spammers.
- Allow, but do not require, an external form.
- Server side validity checking of all data before email is sent.
- Optional client side validity checking of all data before the form is submitted.
- A default configuration that requires only a list of email addresses to be ready for use.
- A customizable interface that allows arbitrary fields.
- Easy to change the look and feel for website integration.
- Able to be easily translated into any language.
Setup
- Download the contactform archive.
- Extract the contents of the download.
- Place contact.pl in your webserver's cgi-bin directory or another place that allows scripts.
- Edit contact.pl to change the email addresses to which email can be sent.
- Optional - Change any other parameters in contact.pl to taste.
- Point your web browser at contact.pl on your server.
- Send yourself email through the web.
Requirements
- A web server that can execute Perl scripts.
- A command line program to send electronic mail. ("sendmail" is installed on most servers.)
- If captchas are used, the Captcha::reCAPTCHA perl module must be installed
(cpan install Captcha::reCAPTCHA or apt-get install libcaptcha-recaptcha-perl or yum install perl-Captcha-reCAPTCHA)
- If external XML file configuration is used, the XML::Simple perl module must be installed
(cpan install XML::Simple or apt-get install libxml-simple-perl or yum install perl-XML-Simple)
Download
contactform_4_03_03.tar.gz
Examples
Keep up to date
The following sites are updated about new releases. Follow or like contact form in one of the following places to be kept up to date:
Bugs and Feature Requests
Bugs and features are tracked using Bugzilla.
Languages
Contact form can be easily translated. See instructions in the contact.pl file of the download. To submit a translation for a new language,
use bugzilla to open a new feature request and attach the translations.
It currently comes in the following languages:
Changes
- Version 4.03.03
- Added rel canonical meta tag to the HTML
- Version 4.03.02
- Version 4.03.01
- Version 4.03.00
- Allow any special fields such as subject, and name to be shown in the email body with "show_in_message" configuration
- Version 4.02.00
- Use the user's email address in the Reply-To field rather than the From field (by default) to bypass spam filtering
- Version 4.01.00
- Version 4.00.00
- Version 3.00.00
- Version 2.01.01
- Version 2.01.00
- Version 2.00.02
- Version 2.00.01
- Version 2.00.00
- Version 1.3.9
- Allow emails to be sent to an entire list of people at once.
- New preview mode available in which preview is allowed but not required.
- Version 1.3.8
- Added a "preview" feature such that users must review their message before sending (enabled by default but may be turned off)
- Changed the format of the from line from "email (name)" to "name <email>" which seems to be more standard
- Version 1.3.7
- Fixed an "uninitialized value in concatenation" warning from perl.
- Version 1.3.6
- Contact form look and feel can be better controlled via cascading style sheets (CSS).
- Support for drop down select fields
- Version 1.3.5
- Error messages are now in context -- an error message for a field will appear directly above that field.
- Version 1.3.4
- Ability to disallow specified text in any field.
- By default disallow html formatted links and message board formatted links to prevent spam.
- Version 1.3.3
- Track the original referrer from the first hit to the contact form, put it in an email header.
- Version 1.3.2
- Messages for the input and sent pages can be specified.
- Fixed a javascript error that occured when no recipient is selected from the drop down menu.
- Version 1.3.1
- Can redirect to a different page after sending email.
- Version 1.3.0
- Added templating ability to make look and feel customization much easier.
- Version 1.2.0
- Allow ordering of multiple email addresses.
- Fields are now ordered in the order they are specified rather than having to specify an order.
- Version 1.1.9
- Added a CSS expression to make Internet Explorer use a max-width for the text fields.
- Version 1.1.8
- Fix a javascript warning that occurred when verifying the form on the client side.
- Version 1.1.7
- Uses Perl's built in safety checks: -T -w and use strict.
- "prefill" parameter may be used to suppress error messages when passing in some other parameters prefilled.
- Version 1.1.6
- Added icon linked from form.
- Version 1.1.5
- Fix from Steve McCarthy for subdomain regular expression: they can start with numbers.
- Version 1.1.4
- Corrected spelling of variable names ("feild" to "field")
- Version 1.1.3
- Client side script disabled for Opera because it can't handle it.
- Version 1.1.2
- Client side script disabled for old Netscape and IE browsers because they can't handle it.
- Descriptions for form elements given label tags.
- Version 1.1.1
- Fixed syntax for the charset on email mime type.
- Added new email header fields.
- Version 1.1
- First public stable release.
- Version 1.0
- Initial release, contains many bugs.
License
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU
General Public License for more details.
Other Web to Email Gateways
Name | License | Requirements | Comments |
Matt's FormMail | Open source, freeware, must obtain permission to distribute. | Perl, Sendmail | Most commonly used, does not hide email addresses, often used as an open relay. |
Monkey's FormMail | Open source, freeware, must obtain permission to distribute. | Perl, Sendmail | Modified (for security) version of Matt's FormMail, does not hide email addresses. |
nms | Open source (GPL or Artistic) | Perl | A replacement for all of Matt's scripts including FormMail. Can send directly to an SMTP server without sendmail. Does not hide email addresses. |
Dr. Jørgen Mash's FormMail.pl | Open source, freeware, must obtain permission to distribute. | Perl, Sendmail | Another modified version of Matt's FormMail. Does not hide email addresses. |
MailWebForm | Open source (GPL) | Java, Java Servlets, Java Mail | Hides email addresses. |
SCForm | Open source (GPL) | PHP, Sendmail | Hides email addresses. |
Copyright (C) 2002-2014 Stephen Ostermiller