|FormToEmail-Pro is a PHP form mail script. It processes web forms and sends the contents of the form to you by email. It will process any form. It doesn't make forms but it comes with HTML code for a basic contact form that you can use on your website (see the demo at the bottom of this page). It is very secure and cannot be hijacked by spammers. It is very simple to install, you only need to add your email address to it. Step-by-step instructions written in plain English.||
Single license: $29
(use on one website)
No Google Wallet? Try 2CO.
Multiple license: $49
(use on unlimited sites)
No Google Wallet? Try 2CO.
Tired of installing and editing PHP form scripts?
Can't send email from your server?
Try our sister-site FormToEmail Remote which offers a remotely hosted form service, so you don't need to install a script or edit another php form file EVER!
Your visitors (and spambots) cannot see your email address. The script cannot be hijacked by spammers. It has a number of features to combat contact form spam. Spammers cannot inject email headers. This prevents them from using the script as a relay to send spam to third parties.
Very easy to install
Just one file, you only need to add your email address to it. This is the minimum that is required. Step-by-step instructions are contained in the script, written clearly in plain English, spelling out each step of the installation and configuration process. Examples are given to assist you. There are a number of options that you can configure if you wish. No database is required. You can also see the installation instructions (and other helpful information) in the Support section which you can get from the link at the top of this page.
Process any form
The script is written in such a way that it will process any form. You can use it to process your existing forms or any new forms that you make. The script will accept POST and GET methods. It will also process multiple select values and multiple check box values of the same name.
Attach file uploads
The script will handle file uploads of any file type and send them as attachments to the email that is sent to you. There is no limit to the number of attachments you can send. You do not need to make any configuration changes to the script to allow attachments, they will be detected automatically but you must remember to code your form correctly. The instructions tell you how to do this. You can block files of certain types you specify or alternatively you can specify the only file types you will accept. You can also set maximum file size limits.
Upload files to the server
By default, any files uploaded from your form will be sent as attachments to the email the script sends you. Alternatively you can configure the script to upload these files to your server. You can specify a location for the uploaded files and specify a prefix for the file names. You can use inputs from your form to prefix the file name, so for example you could have a file name prefixed by the user's name. The file names of uploaded files are included in the body of the email sent from the script so you can see which files were uploaded by the visitor. If you upload them to a web-accessable directory (default) a link is provided in the email to the uploaded file(s).
You can choose to require specific fields on your form. If these are empty when the form is submitted the user will be issued with a message to go back and enter a value. The form will not be sent until the required fields are filled out. If you do not enable required fields, the script will still issue an error if all fields are blank, and will not send an email.
You can configure the script to automatically send an email to the person who submitted the form. If enabled it will send an email consisting of a header message, the form data submitted and a footer message. You can also attach a file to the autoresponder. You can customize the header and footer messages and the subject line of the autoresponse. You can also use an email template to make the email appear exactly as you want it.
Securimage CAPTCHA support
Securimage CAPTCHA is a third-party CAPTCHA system. It is an open-source product written by Drew Phillips from phpcaptcha.org. It's a really nice CAPTCHA system and is easy to install. Full installation instructions are contained in the script. To use it, you need to put the code on your form for it. Sample form code is included, should you need it. You then need to create a directory/folder in your webspace called /securimage. You then upload the supplied Securimage CAPTCHA files to that directory and enable the option in the script. That's all. Your form will then display a CAPTCHA image which the user must verify before submitting the form. This prevents automated bots from spamming your form. You can customize the CAPTCHA image to use different fonts, colors etc. It has a neat facility whereby you can refresh the CAPTCHA image without refreshing the whole form page. You can see the Securimage CAPTCHA on the demo form at the bottom of this page.
reCAPTCHA™ is a third-party CAPTCHA system. It is a free product available from reCAPTCHA.net. FormToEmail-Pro can accept and process the input from the reCAPTCHA™ system. This is an optional setting, you can enable it and configure it in the script. To use reCAPTCHA™ you must first register with recaptcha.net and get a public key and a private key from them to use in your form and to configure the script with. The keys are just long strings of characters unique to your domain. You need to get keys for each domain you are using reCAPTCHA™ on. See their website for more information.
To use the reCAPTCHA™ system, you need to put some PHP code on your form page to display the CAPTCHA. The code is supplied in the script. You must also enter your public key in the form code (instructions in the script). Your form page MUST be a PHP page for the reCAPTCHA™ code to work in conjunction with this script. i.e. your page must have a .php extension like "contact.php" for example. You will also need to download the PHP zip file from recaptcha.net and put the file "recaptchalib.php" in the same directory/folder as the form page and script. The zip file from recaptcha.net has several files in it but "recaptchalib.php" is the only one you need. You also need to enter your private key in the script configuration. There are instructions in the script about this.
All the code you need is included in the script. You do not need to get any code from recaptcha.net. The only thing you need from them is your public and private keys and the zip file containing recaptchalib.php.
textCAPTCHA is a third-party CAPTCHA system from textCAPTCHA.com. As the name implies, it is a text-based captcha system, presenting security questions in plain text, which the visitor must answer correctly to submit the form. This is particularly useful for people who are visually impaired. It presents logic questions like (for example): "The colour of a pink cake is?". You need to register with textCAPTCHA to get a unique API key. The script instructions contain the code you need to paste into your form page to make the textCAPTCHA work.
identiPIC photo CAPTCHA
The script comes with the identiPIC photo CAPTCHA system. This is optional. You can choose to enable it in the configuration options in the script. This is a very good system for blocking spambots. Unlike a conventional CAPTCHA, it displays a picture (or pictures) as opposed to entering a security code, which the user must identify. All the code you need is included in the script, including HTML code for a basic contact form (name, email, comments) containing the identiPIC system.
IP address display
If you enable this, the email sent to you will have the sender's IP address shown at the bottom.
Check for banned IPs
You can ban specific IP addresses (or classes) from using your form. You can make a list of the IP addresses you would like to ban. There is virtually no limit to the number of IP addresses you can list. You can specify an IP class (or classes) to ban which would ban every IP address in that range. If the form is submitted from a banned IP address, the (contents of the form) email will not be sent to you. The script will issue an error to the user. You can edit the error message that is issued.
Block web addresses/rude words
You can block any word, phrase or string of characters from getting submitted by your form. You make a list of such words and phrases in the script configuration. By default the script will not allow web addresses (URLs) to be posted in any field (if someone is trying to spam you, you can be fairly certain that they will include a web address in the comments or elsewhere). If you expect your visitors to enter a web address, you can edit the list of blocked words and phrases in the script configuration to allow web addresses.
Frequently, contact form spam may consist of gibberish "words" like "YwfZCvLdDQYDTzGAH" or "MldMtrPAgZq" for example. The gibberish check identifies such "words", blocks them and issues an error. If an error is issued, the script will not send the email. It looks for a series of consecutive consonants or consecutive vowels. These "words" very often have a long series of consecutive consonants or consecutive vowels that you would not find in a normal word. You can set a threshold which will allow consecutive vowels or consecutive consonants up to the threshold limit. This check only works for English alphabet vowels and consonants.
You sometimes get spam consisting entirely of gobbledegook characters (Å ð ç etc). They are in fact "exotic" or non-English language characters. This check will prevent any messages getting through if gobbledegook is found. This is not enabled by default.
CSV output to attachment or file
CSV attachment. You can choose to have the form data included in a CSV (Comma Separated Values) file that is sent as an attachment to the email the script sends (you still get the form data in the email). The file contains the field names as the header row and the form data as the second row. The file only contains data from the submitted form and does not accumulate data from all form submissions (see below if you want a CSV file containing all form submissions). The CSV file can be opened in Excel, for example. You do not need to make any changes to your form.
CSV file on server. If you enable this, all data from submitted forms will be accumulated in a CSV file on your server. You can then download the file and open it in Excel (for example) and search/sort/manipulate/print the data to suit. By default the CSV file is kept in the same directory/folder as the script but you can specify any location on your server. The first line of the file is a header row made up of the field names from your form. The subsequent rows show the data submitted from your form, one line of data for each form submitted.
Use email templates
You have the option of using templates for the emails output from the script. The script provides clean, basic emails as standard, with a fixed format. If you want your email, or the autoresponder email, to look a particular way or to present the data in a particular way, then you can write a template which will output the email exactly as you want it. Have a look at the "Email templates" page on the support section for more information.
Show date and time submitted
If you enable this option, the date and time that the form was submitted, will be shown in the email you receive, in the autoresponse email (if enabled) and in the CSV file output (if enabled). The date and time are taken from your server, where the script and PHP reside.
Create Message ID
If you enable this option, a "unique" Message ID number will be generated and shown in the body of the output email from the script. You can use this to identify the form submission. Technically this is not a "unique" number, it is a psuedo-random eight-digit number. To make it unique would require the use of a database or a separate file to store previously issued numbers. This is not supported in the script because one of its biggest selling points (loved by customers) is its simplicity and the fact it is supplied in just one file. In practice, the ID will probably be unique and if used in conjunction with other form data, such as the visitor's email address, it should provide a pretty good reference point.
You can specify which encoding (character set) to use for the output email. This is in the configuration options. By default it will use iso-8859-1 (Western European). You should only change this if you need to. utf-8 (Unicode) encoding is becoming more popular now. You can make the script use utf-8 encoding by entering it in the configuration option. Instructions and examples are provided in the instructions for the configuration options in the script itself.
By default the script will check for a referrer (referer) header to establish that the form is being submitted from your site. You can disable this if you wish.
Pre-populate the form
A problem can occur whereby the visitor hits "back" to return to your form page after getting an error and the data they submitted on the form is wiped out. They get a blank form. This is caused by the visitor's browser refreshing the form page, it's got nothing to do with the script! Some browsers will refresh the page, some won't, it's down to the browser settings. To be certain that your vistor does not get returned to a form where their entered data is wiped out, you can pre-populate the form with their submitted data.
To do so, you need to add some PHP code to your form page (the script can't do that for you) and enable the "$pre_populate_form" option in the script. If enabled, a session will be created and the submitted values from the form will be stored in the session. This means the values will be available to your form page should your visitor go back to your form after getting an error. You can then display the submitted values on the form (pre-populate it). This prevents the visitor getting a blank form when they return to the form to correct any errors. See the "Pre-populate the form" page in the support section for more information.
Show errors on the form page
By default, the script will issue any error messages on the screen after the form is submitted. The form is not shown, and the user has to hit "back" to get back to the form (the standard error message page can be customized, have a look at the "Customizing error messages" page on the support section for more information).
If you would like the user to be returned to your form page when errors occur and have the error messages shown along with the form (see the demo at the bottom of this page) you will need to add some code to your form page to display the errors (the script can't do that for you). You will also need to enable the $show_errors_on_form_page option, and enter a value for the $form_page_url variable (instructions in the script). For more information, see the "Show errors on the form page" item in the support section.
Check for a set cookie
If you enable this the script will first check for the existence of a cookie. If the cookie does not exist, the script will exit, an error message will be issued and the email will not be sent. This is a very useful feature as it will block some spam bots. If this is enabled, the user (your website visitor) must have cookies enabled on their browser. To use this feature you must set a cookie on the page that your form is on. To set the cookie, you only need to add one line of code (provided in the script) to your webpage. You can set it on an ordinary HTML page or a PHP page. Instructions are in the script.
Confirm email address
The script can compare two email addresses and check that they are the same. This allows you to put an email confirmation input on your form where your visitor re-enters their email address to confirm it. The script will check that both values are the same, if they are not, the script will issue an error and the email will not be sent.
HTML email format
By default the script will send you an email in plain text but you can choose to have the output sent to you in HTML format. This presents the output in a table with different colors and bold font which makes it very neat and easy to read. You can customize this output (font type, size, color, table color, cell color) using the configuration options in the script. You can also use an HTML email template to make the email appear exactly as you want it.
You can configure the script to ignore certain fields on your form. This means that they are not included in the email that is sent to you. Typically this would be the "submit" button but you can configure it to ignore any field. Alternatively, you can use an email template and specifically state which fields you would like to be displayed in the output email.
You can specify the order that your form fields are displayed in the email that the script sends. By default the script will return the fields in the order that they are submitted but if you have a very large or complex form then you might find that the default order does not suit your needs. By enabling this option you can have them displayed in any order you wish. Alternatively, you can use an email template and have the form fields data shown in any order you desire.
Form code included
The script contains sample HTML code for a basic contact form, the one you see on the demo on this page. The HTML form code is also supplied for the reCAPTCHA system. Please note, the script does not make forms, it processes them. If not using the supplied form code, you need to make your own forms. There's more information about this in the Support section, linked above. If you do not know the difference between a form and a script, please have a look at my form-to-email primer in the Support section.
"Thank you" page
You have the option of presenting your visitor with a standard "thank you" message or automatically redirecting them to a "thank you" page (or any page of your choosing) after they have submitted the form. The default is the standard "thank you" message. If you are using the standard "thank you" message, they will be provided with a "continue" link to your homepage (or any page of your choosing) after submitting the form, which they can click on to continue.
If you would like the visitor to be automatically redirected to another page (or site) when they submit the form (as opposed to getting the standard "thank you" message) you can enter the web address of the page that you would like the visitor to be automatically redirected to. You can redirect them to any page on any site, it doesn't have to be a page on your own site.
HTML template for "thank you" page
Instead of using the standard "thank you" message or redirecting to another page, you can use an HTML template to display a "thank you" message of your own design. This "thank you" page will be displayed on the screen when the form is submitted successfully. The biggest advantage of this method is that you can include submitted values from your form in the page, and you can make the page EXACTLY as you want it. To use this option, you need to make an HTML template file, which you upload to your webspace. The HTML template file is a normal HTML file, with the addition of some, none, or all of the submitted form values in it. If it suits your purpose, you can make the file without showing any of the submitted form values. You just write the file as you would any HTML page.
The name of the script is not shown. There are no links back to this site.
Friendly free support
If you need help, just ask! Many customers are new to this. I explain things clearly and will not treat you like an idiot!
Free upgrades for life
Like it says! When you make your purchase you will receive an automated email explaining how to download the script. You can visit the download page at any time and get the latest version of the script. You can get more information about downloading the script in the Support section linked above.
This is a PHP script. In order for it to run, you must have PHP (version 4.1.0 or later) on your webhosting account, and have the PHP mail() function enabled and working. If you are not sure about this, please ask your webhost. You can also test your setup by downloading the free version of this script. If that works, this one will work too.
Price is in USD. Due to the nature of the product, the sale is final and I cannot issue a refund. You won't want one anyway, you will love this script.
HTML code is provided in the script for the basic contact form below, should you need it (the optional Secureimage CAPTCHA is shown below, code supplied). Whether you are using your own forms or the form below, you can try the demo to see how it works. You can see the default error messages from the script. You can customize these to suit your own website (see the Support link at the top of this page for more information on that). You can also have the error messages displayed on the same page as the form, see the demo below this one. You can try entering a bad email address or gibberish word (rrkppdsueaw) for example, to see the errors. By default the script blocks "http://" to combat spam (you can disable this if need be). Try entering it in the demo to see the error. The demo does not send any emails.
Demo showing errors on the same page as the form
You can configure the script to save the error messages in a session, which means you can display them on your form page. To show them on your form page, you need to add some PHP code to your form page. Have a look at the "Show errors on the form page" item in the support section. This demo also uses the facility in the script to store the submitted form values in the session, meaning they can be used to pre-populate the form if the user hits "Back". See the "Pre-populate the form" page in the support section for more information.