Search Over 30,000 FREE Plugins from the Official WordPress Plugin Directory Repository

Contact Form Email

Contact form that sends the data to email and also to a database list and CSV file. Contact form with form builder.

Contact Form to Email features:

► Email delivery & notifications    
► Saves messages into database
► Export to Excel / CSV
► Printable list of messages
► Visual drag and drop form builder 
► Anti-spam captcha 
► Field validation
► Printable reports
► One-click contact form
► Automatic email reports
► ... and more features (see below)

The main purpose of the Contact Form to Email is, as the name indicates, to create contact forms and send their data email addresses.

In addition to that basic feature it also saves the contact form data into a database, provides printable reports and the option to export selected data to CSV/Excel files.

Contact Form to Email Main Features:

  • Email delivery / notifications: The contact form data is sent by email to one or more email addresses. It also supports the configuration of auto-replies to the user who filled the contact form.
  • Form data saved into the database: Avoid losing submissions and keep a record of the received contact form messages.
  • Printable list of messages: Get the list of contacts received from the contact form within a selected date range and print it.
  • Export data to CSV/Excel: Export the contact form data to a standard format that can be used by other applications. Export the email addresses and other contact form data using date and text search filters.
  • Automatic reports: Provide automatic reports of the contact form usage and data entered into the form. Report of daily submissions and accumulative hourly report. Printable reports for specific fields into the contact form. Helps you to understand your data.
  • Automatic email reports: Automatic reports sent to the indicated email addresses on a regular period.
  • Form Validation: Set validation rules for each contact form field. Keep your data clean.
  • Anti-spam protection: Built-it captcha anti-spam protection. No need to rely on external services for the contact form anti-spam protection.
  • Drag and drop contact form builder: A basic and easy to use contact form builder for customizing the form fields and form validation.
  • Customizable email messages: Specify the text of the contact form email notifications. Supports both plain text emails and HTML formatted emails.
  • Multi language support: The contact form builder allows to enter the field labels and validations in any language. It supports special characters.

Contact Form to Email - More features

There are also commercial versions of the Contact Form to Email with other features not listed here that can be get at

Contact Form to Email Messages List

The messages list helps to check the past contact form submissions and print or export them. Includes a search/filter form with the following options:

  • Search for: Search for a text into the contact form messages.
  • From ... to: Date interval to be included in the list/reports.
  • Item: You can have more than one contact form. Select here if you want to get the results of a specific contact form or from all contact forms.
  • Filter: Shows the list according to the selected filters/options.
  • Export to CSV: Export the CSV data according to the selected filters/options.

The CSV file will contain a first row with the field names and the next rows will contain one contact form submission per row, with one for field on each column. This way you can easily import the data from other applications or just select the columns/fields that you need (example: select only the emails). A CSV file can be opened and managed using Excel.

The list of contact form messages is shown below the search area. A print button below the list provides the messages list in a printable format.

The Contact Form Reports

The reports section lets you analyze the use of the contact forms and the data entered into them. The first section of the reports is a filter section similar to the one that appears in the messages list page. Below the filters section there are three graphical reports:

  • Submissions per day: The report will display in point-lines graphic how many contact form submissions have been received each day in the selected date range. This report can be used to evaluate the contact form peaks and measure the impact of marketing actions.

  • Submissions per hour: The report will display in a point-lines graphic how many contact form messages are received on each hour of the date; this is for the total messages in the selected date range. This report can be used for checking peak hours and focus the support service on those hours.

  • Report of values for a selected field: Select any of the contact form fields and other information fields (like date, IP address, hours) to get a report of how many times each value have been entered or selected. This is very useful if you form is used as a poll to get feedback from users, it makes easy to generate a report on selectable contact form fields. This report can be used also to study the most common data entered in the contact form and get a better idea of your customer's profile and needs.

A print button at the end of the page can be used to print the report of the values for the selected contact form field in a printer-friendly format.

Automatic Email Reports

The Contact Form to Email plugin allows the setup of two types of automatic (periodical) Email reports:

  • Global Email Reports: Can be setup below the list of forms. This report sends a report with the new submissions of all forms every the specified number of days.

  • Form Email Reports: Can be setup on the settings page of each form. This report sends a report with the new submissions of the related form every the specified number of days.

The reports are attached in a CSV / Excel file into the emails. In both cases the destination email addresses, email subject, email text and the report's interval can be specified. More info available in the section "Other Notes".

Language Support

The Contact Form to Email plugin is compatible with all charsets. The troubleshoot area contains options to change the encoding of the plugin database tables if needed.

Translations are supported through PO/MO files located in the Contact Form to Email plugin folder "languages".

The following translations are already included in the plugin:

  • English
  • Italian
  • Portuguese
  • Portuguese(Brasil)
  • Russian
  • Polish
  • Turkish
  • Afrikaans (af)
  • Arabic (ar)
  • Armenian (hy_AM)
  • Azerbaijani(az)
  • Basque (eu)
  • Belarusian (be_BY)
  • Bosnian (bs_BA)
  • Bulgarian (bg_BG)
  • Catalan (ca)
  • Central Kurdish (ckb)
  • Chinese (China zh_CN)
  • Chinese (Taiwan zh_TW)
  • Croatian (hr)
  • Czech (cs_CZ)
  • Danish (da_DK)
  • Dutch (nl_NL)
  • Esperanto (eo_EO)
  • Estonian (et)
  • Finnish (fi)
  • French (fr_FR)
  • Galician (gl_ES)
  • Georgian (ka_GE)
  • German (de_DE)
  • Greek (el)
  • Hebrew (he_IL)
  • Hindi (hi_IN)
  • Hungarian (hu_HU)
  • Indian Bengali (bn_IN)
  • Indonesian (id_ID)
  • Irish (ga_IE)
  • Japanese (ja)
  • Korean (ko_KR)
  • Latvian (lv)
  • Lithuanian (lt_LT)
  • Macedonian (mk_MK)
  • Malay (ms_MY)
  • Malayalam (ml_IN)
  • Maltese (mt_MT)
  • Norwegian (nb_NO)
  • Persian (fa_IR)
  • Punjabi (pa_IN)
  • Romanian (ro_RO)
  • Serbian (sr_RS)
  • Slovak (sk_SK)
  • Slovene (sl_SI)
  • Spanish (es_ES)
  • Swedish (sv_SE)
  • Tagalog (tl)
  • Tamil (ta)
  • Thai (th)
  • Ukrainian (uk)

Contact Form to Email Updates

New features has been published in the current Contact Form to Email version 1.2.7 based on the feedback received and we would like to thank you all the people that have supported the development, provided feedback and feature requests. The plugin is currently over the 630,000 downloads/installations and a new set of updates is already being prepared, any feature requests will be welcome. Thank you!

New: Form Builder

In the latest update a form builder was included to visually add/modify/delete text fields, text-areas and emails with their respective validations.

Contributors codepeople
Tags contact, contact form, contact form builder, contact form csv, contact form database, contact form excel, contact form plugin, csv, drag and drop contact form, email, excel, feedback, form, form to csv, form to database, form to email, form to excel, wordpress contact form
  1. contact-form-to-email screenshot 1

    Adding fields to the contact form

  2. contact-form-to-email screenshot 2

    Editing fields from the contact form

  3. contact-form-to-email screenshot 3

    contact form processing settings

  4. contact-form-to-email screenshot 4

    contact form validation settings

  5. contact-form-to-email screenshot 5

    Inserting a contact form into a page

  6. contact-form-to-email screenshot 6

    Built-in captcha image anti-spam protection

To install Contact Form to Email, follow these steps:

  1. Download and unzip the Contact Form to Email plugin
  2. Upload the entire contact-form-to-email/ directory to the /wp-content/plugins/ directory
  3. Activate the Contact Form to Email plugin through the Plugins menu in WordPress
  4. Configure the contact form settings at the administration menu >> Settings >> Contact Form to Email
  5. To insert the contact form into some content or post use the icon that will appear when editing contents


  • Compatible with the latest WP versions
  • New automatic CSV report options
  • Added functional form builder
  • Improved CSS styles to avoid CSS conflicts
  • Fixed conflict of the captcha image with some third party plugins
  • Fixed bug in pagination links
  • New feature for adding submission number into the emails
  • Fixed bug with back slashes on submissions


  • Compatible with the latest WP versions
  • Improved translation code, compatible with the latest WP versions
  • New translations
  • Auto-detection and auto-solution for captcha image issues in servers with problem with the PHP sessions configuration
  • Fixed warning that appeared with PHP safe mode restrictions
  • Sanitized GET parameters used in queries


  • Sanitized parameters used in SQL queries.
  • Support for large forms.
  • Improved translations.
  • Compatible with the latest WordPress 4.2.x version


  • Compatible with the WordPress 4.2.2 version


  • Removed use of esc_sql for numeric values
  • Fixed XSS vulnerability
  • Fixed bug in translation functions.


  • Compatible with the latest WordPress 4.2.3
  • Update to messages list.
  • Better code for captcha image generation.
  • Fixed conflict with zLib library
  • Update to the captcha generation to add content-length header


  • Update to the h2-h1 tags in the admin interface
  • Fixed bug with the tabs
  • Fixed initialization bug in reports
  • Fixed typo in dutch language
  • Removed unneeded data from the post process


  • Fixed CSV sample format
  • Updated support links


  • Default settings updated


  • Support new charsets


  • Interface modifications


  • Updates to admin interface


  • Form validation is now activated from the form builder


  • Tested and compatible with WordPress 4.4


  • Fixed insert query


  • Fixed captcha issues


  • Optimization. Removed code from old/unused behaviors


  • Removed old styles


  • Fixed validation tags


  • Fixed CSS errors and the submit button style in the new WP themes


  • Improved captcha security


  • Message list updates


  • Fixed typos in French translations


  • Fixed PHP session issues


  • Shortcode paramters sanitization


  • Updated API URLs


  • New website & documentation links


  • Added demo pages


  • Added nonces and security improvements


  • Correction to support address


  • New filter for file uploads


  • Compatible with WP 4.5


  • Slashes escape fix


  • jQuery deprecated functions replaced


  • Fixed bug in throubleshoot area


  • Using plugins_loaded instead init


  • Removed unneeded tag from public from


  • Removed old versions of Contact Form to Email


  • New documentation


  • "From" email address corrected


  • IP address not included as default to avoid anti-spam issues


  • Mail notice removed


  • Captcha params update


  • Auto-formatting for from email


  • Fix on email tags


  • Modified admin addr


  • Fixed XSS issue (Thank you to Burak Kelebek for the report)


  • Compatible with WP 4.6


  • Fixed XSS issue. Thank you to Netsparker Ltd ( for the notification.


  • New customization form


  • Modified processing of posted data


  • IP addr database update


  • Fixed magic quotes issue


  • More fixes for magic quotes issue


  • Roll back to incorrect update


  • Interface update


  • Fix to visualization bug in Firefox


  • French language corrections


  • Code optimizations


  • Improved support tracking


  • Fixed database error on IP v6 networks


  • Database improvements


  • Doc link updated


  • Database fix


  • Compatible with WP 4.7


  • Fixes to filename generation


  • Instructions update


  • DB update


  • Fixed intf. bug


  • Fixed typo


  • DB improvements


  • Security improvement


  • Admin intf update


  • Fixed broken admin button


  • Validation updates


  • Bug fixed in add contact form feature


  • Documentation updates

Q: How can I add specific fields into the email message?

A: There is a tag named <%INFO%> that is replaced with all the information posted from the contact form, however you can use also optional tags for specific fields into the contact form.

For doing that, click the desired field into the form builder and in the settings box for that field there is a read-only setting named "Field tag for the message (optional):". Copy & paste that tag into the contact form message text and after the form submission that tag will be replaced with the text entered in the form field.

The tags have this structure (example): <%fieldname1%>, <%fieldname2%>, <%fieldname3%>, ...

Q: Can I add a reference to the item number (submission number) into the email?

A: Use the tag <%itemnumber%> into the email content. That tag will be replaced by the contact form submission item number.

Q: The contact form doesn't appear. What is the solution?

A: The cause is in most cases a conflict with a third party plugin or with the theme. To fix that, go to the "troubleshoot area" (located below the list of forms in the settings area) change the "Script load method" from "Classic" to "Direct".

If the problem persists after that modification please contact our support service and we will give you a solution. We will appreciate any feedback to make the contact form avoid conflicts with third party plugins/themes.

Q: I'm having problems with non-latin characters in the contact form.

A: Use the "troubleshoot area" to change the character encoding. Try first with the UTF-8 option.

Q: I'm getting this message: "Destination folder already exists". Solution?

A: The free version must be deleted before installing the pro version.

If you are uploading a new version via Plugins - New - Upload and a previous version is still installed, then delete the previous version first. This is a safe step, the plugin's data and settings won't be lost during the process.

Another alternative is to overwrite the plugin files through a FTP connection. This is also a safe step.

Q: How to edit or remove the form title / header?

A: Into the form builder in the administration area, click the "Form Settings" tab. That area is for editing the form title and header text.

It can be used also for different alignment of the field labels.

Q: Can I align the form horizontally in two or more columns?

A: Into the form editor click a field and into its settings there is one field named "Add Css Layout Keywords". Into that field you can put the name of a CSS class that will be applied to the field.

There are some pre-defined CSS classes to use align two, three or four fields into the same line. The CSS classes are named:


For example if you want to put two fields into the same horizontal line then specify for both fields the class name "column2".

Q: What means each field in the contact form settings area?

A: For each contact form you will be able to edit the following settings:

Form Processing / Email Settings:

  • Send email "From": Indicate if the email will be sent from a fixed email address or from the email address entered by the customer. This is explained in more detail in the "Other notes" tab.
  • "from" email: The email used as from in the notifications (for fixed "from" addresses).
  • Destination emails (comma separated): List of administrators that will receive the email notification.
  • Email subject: Subject of the notification email sent after completing the payment.
  • Include additional information?: Optional information about the user IP and browser.
  • Thank you page (after sending the message): After the completing the payment the user may go back to a page into your website (usually a "thank you" page). Type the page address into this field.
  • Email format?: Select if the email will be sent as plain-text or HTML-formatted.
  • Message: Content of the notification email that you will receive after each submission of the contact form. Keep the tag , it will be replaced automatically with the form data send by the user.

Form Builder: The drag and drop contact form builder. It's explained in detail in the "Other notes" tab.

Submit button: To specify the label of the contact form submit button (no need to add it from the visual contact form builder). Contains also other settings and instructions for further customizations to the contact form submit button and contact form CSS styles.

Validation Settings: This area contains the "texts" used for the contact form validations. You can easily translate them to other languages.

Email Copy to User:

  • Send confirmation/thank you message to user?: Select if you want to sent the "confirmation/thank you" message to the user.
  • Email field on the form: Select here the field that contains the user's email on the contact form.
  • Email subject: Subject of the email sent to the user after payment
  • Email format?: Select if the email will be sent as plain-text or HTML-formatted.
  • Message: Content of the email sent to the user after payment. The tag will be replaced by the information sent using the contact form, if needed.

Captcha Verification:

  • Use Captcha Verification?: Select if the captcha image will be used in the contact form to prevent spam.
  • Width: Width of the captcha image.
  • Height: Height of the captcha image.
  • Chars: How many characters will appear in the captcha image.
  • Min font size: Minimum size used for the font (randomized).
  • Max font size: Maximum size used for the font (randomized).
  • Preview: Preview for checking how the captcha image will look.
  • Noise: Amount of noise to make it stronger.
  • Noise Length: Length of the noise to modify its look.
  • Background: Background color.
  • Border: Border color.
  • Font: Base font used to render the text. Four options already included.

Automatic Reports. Send submissions in CSV format via email: This area contains many settings to automatically send reports every the specified period of time containing the data of all the contact forms submitted during that period of time. The report settings are explained more in detail in the tab "Other Notes" (see "Customizing the automatic email reports"). Note: All the submissions are stored into the contact form database, so can be easily recovered when needed.

Q: How can I apply CSS styles to the contact form fields?

A: To modify the whole styles of the contact form fields and labels, edit the styles file "wp-content/plugins/contact-form-to-email/css/stylepublic.css" and add these rules at the end of that file:

  • Change the styles of all the field labels:

    #fbuilder, #fbuilder label, #fbuilder span {
    color: #00f;
  • Change the styles of all the input and textarea fields:

    #fbuilder input[type=text], #fbuilder textarea, #fbuilder select {
    border: 2px solid #00f;
  • Change the contact form submit button:

    #fbuilder .pbSubmit {
    color: #00f;
    font-weight: bold;
  • Change the "contact form title" and "header description":

    #fbuilder .fform h1 {font-size:32px;}
    #fbuilder .fform span {font-size:16px;}

On the other hand to modify only a specific field into the contact form:

  • Step #1: Into the contact form builder, click a field to edit its details, there is a setting there named "Add CSS Layout Keywords".

  • Step #2: You can add a class name into that field, so the style specified into the CSS class will be applied to that field.

  • Step #3 (Note): Don't add style rules directly there in the contact form builder but the name of a CSS class.

  • Step #4: You can place the CSS class either into the CSS file of your template or into the file "wp-content/plugins/contact-form-to-email/css/stylepublic.css" located into the Contact Form to Email plugin's folder.

Examples: Add a class named "specialclass" into the setting "Add CSS Layout Keywords" and add one of these CSS rules into the mentioned file:

  • For changing the field label:

    .specialclass label {
    color: #00f;
  • For changing the input or textarea of the field:

    .specialclass input[type=text],.specialclass textarea,.specialclass select {
    border: 2px solid #00f;

To get the modifications shown into the public contact form you may have to refresh the page twice or clear the browser cache to be sure that the old CSS styles aren't still being shown from the cache.

Other Notes

Opening the contact form messages in Excel: Go either to the "Reports" or "Messages" section. There is a button labeled "Export to CSV". CSV files can be opened in Excel, just double-click the downloaded CSV file, it will contain the selected contact form submissions, one per line.

Deleting a contact form message: Go to the "Messages" section and use the button labeled "Delete" for the contact form message you want to delete. Each row in that list is a contact form submission.

Get the contact form email from the user: The email used as from is a fixed email specified on the contact form settings, this helps to prevent be classified as spam, however when you hit "reply" over the received email, the user's email address will appear allow you to easily reply the contact form messages. The header "Reply-to" is used for this purpose.

Customizing the captcha image: The captcha image used in the contact form is 100% implemented into the plugin, this way you don't need to rely on third party services/servers. In addition to the settings for customizing the captcha design you can also replace the font files located into the folder "contact-form-to-email/captcha/". The fonts are used as base for rendering the captcha on the contact form.

Contact form email format: The notifications emails sent from the contact form can be either plain-text emails or HTML emails. Plain text emails are preferred in most cases since are easier to edit and pass the anti-spam filters with more probability.

Contact form Clone button: The clone button duplicates a complete contact form with its settings. The contact form messages / emails and statistics aren't duplicated.

Custom contact form submit button

There is a settings section info each form that allows to specify the label of the submit button.

The class="pbSubmit" can be used to modify the button styles.

The styles can be applied into any of the CSS files of your theme or into the CSS file "contact-form-to-email\css\stylepublic.css".

For further modifications the submit button is located at the end of the file "".

For general CSS styles modifications to the form and samples check this FAQ entry:

Customizing the automatic email reports

The settings for the email reports (both the global and per form reports) include the following configuration fields:

  • Enable Reports?: Option for enabling / disabling the reports.
  • Send report every: Indicate every how many days the reports will be sent.
  • Send after this hour (server time): Approximate time at which the reports will be sent. This time is based on the server time. Some activity is needed on the website for sending the reports. You can setup a cron for a more exact delivery time.
  • Send email from: The "from" email used for the reports. Avoid and "from" addresses to skip the anti-spam filters.
  • Send to email(s): The list of emails (comma separated) that will receive the reports.
  • Email subject: Subject of the email that will be sent with the Contact Form to Email reports.
  • Email format?: Format of the email that will be sent with the Contact Form to Email reports. Can be HTML or Plain Text. In most cases plain text is easier to setup and has less problems with anti-spam services.
  • Email Text (CSV file will be attached): Content of the email that will contain the Contact Form to Email reports. The reports will be attached in CSV format into the email.

The contact form database

The messages received via the contact form are stored into the WordPress contact form database table "wp_cftemail_messages". You can export that data in form of automatic email reports or in CSV/Excel format from the messages list area. If needed you can also query that table directly for further processing of the contact form data.

Importing messages

There is an option to import messages into the Contact Form to Email plugin. That option is located below the messages list and is labeled "Import CSV".

The messages can be imported in a comma separated CSV file. One record per line, one field per column. Don't use a header row with the field names.

The first 3 columns into the CSV file are the time, IP address and email address, if you don't have this information then leave the first three columns empty. After those initial columns the fields (columns) must appear in the same order than in the form.

Sample format for the CSV file:

2013-04-21 18:50:00,,, "", "sample subject", "sample message"
2013-05-16 20:49:00,,, "", "other subject", "other message"

From address used for the emails

Into the "Form Processing / Email Settings" section the first settings field is named "Send email "From" and has the following options:

  • From fixed email address indicated below - Recommended option: If you select "from fixed..." the customer email address will appear in the "to" address when you hit "reply", this is the recommended setting to avoid mail server restrictions.

  • From the email address indicated by the customer: If you select "from customer email" then the customer email will appear also visually when you receive the email, but this isn't supported by all hosting services, so this option isn't recommended in most cases.

The drag and drop contact form builder

The Form Builder lets you to add/edit/remove fields into the contact form and also to specify the validation rules for your contact form (required fields, email fields, etc...).

The following field types are currently available in the version published at this WordPress directory:

  • Single Line Text: Classic one-line text input.
  • Email: This field validates that the email address has a valid format.
  • Paragraph Text: Classic multi-line (textarea) text input.

In other versions of the plugin the following field are also available: Numeric field with specific validations, Date-picker, Checkboxes, Multiple Choice Radio buttons, Dropdown / Select, Upload file fields, Password, Phone with specific validations, static texts, section breaks and page breaks for multi-page contact forms.

Other features in the contact form builder:

  • Equal fields validation: Use it for example to confirm if the email or text typed in two different fields are the same. This is valid for "Single Line Text" and "Email" fields.

  • Dependent fields: Use this feature for show/hide fields (any field type) based in the selection made on other fields (checkboxes, radiobuttons or select/drop-down fields). This feature isn't fully available in this version since the related fields aren't included.

Editing the field settings in the Contact Form Builder:

When you click a field already added into the contact form builder area, you can edit its details and validation rules. The following properties are available:

  • Field Label: Label for the field in the public contact form and into the email.
  • Field tag for the message: In addition to the general %INFORMATION% tag, you can use this tag to show the field value into a specific tag of the email. More info at the WordPress Contact Form to Email FAQ.
  • Specific settings: The settings depends of the field type.
  • Validation rule: The validation rules depends of the field type, example: required, valid email, ...
  • Predefined value: Pre-filled value for the field, if any.
  • Instructions for user: This text will appear in a smaller form below the field. It's useful for giving instructions to the user.
  • Add CSS layout keywords: Customize the look & feel. More info at the WordPress Contact Form to Email FAQ.
Version 1.1.78

Requires WordPress version: 3.0.5 or higher

Compatible up to: 4.7.2

Last Updated 13 Feb 2017

Date Added: 11 Apr 2013

Plugin Homepage


3.8 stars
42 ratings


Not Enough Data

Works: 0
Broken: 0