This post is no longer updated. Move to Contact Form 7 official site.
Download | Plugin Homepage | FAQ | Support Forum
Summary
![]()
Just another contact form plugin. Simple but flexible.
- Supports multiple contact forms.
- You can customize form and mail contents with simple markup.
- AJAX submitting with jQuery Form Plugin.
- Spam filtering with Akismet.
- Bot prevention with CAPTCHA.
Download and Install
Download the latest release from WordPress.org plugin directory.
- Upload whole contact-form-7 folder to the /wp-content/plugins/ directory
- Activate the plugin through the ‘Plugins’ menu in WordPress
Usage
- Open admin page
[Options] – [Contact Form 7][Manage] – [Contact Form 7].Update: If you are using WordPress 2.7 or greater, you can find the admin page under [Tools] – [Contact Form 7].
- Edit default “Contact form 1” or add new and save it.
- Copy
[contact-form ...]code and paste it into the content of any posts you need the contact form.
FAQ
How to customize form and mail contents
You can use “tags” in several fields. Contact Form 7’s “tag” is formed string enclosed in square brackets [].
A tag used in form content is replaced by HTML form control element like <input> or <textarea>.
A tag used in mail template is replaced by user input of element with the same name.

In this picture, a tag [textarea your-message ...] inserted in form content is replaced by <textarea> tag with name="your-message" attribute.
When a visitor input into this <textarea> field and submit, Contact Form 7 generates a mail based on mail template. Since message body field has [your-message] tag, this tag replaced by the user input message.
Tags in form content
You can use the following types of tags in form content.
| Type | Replaced by | Validated as |
|---|---|---|
| text | <input type="text" /> |
Any text |
| text* | <input type="text" /> |
Any text / Required |
<input type="text" /> |
Email address | |
| email* | <input type="text" /> |
Email address / Required |
| textarea | <textarea> </textarea> |
Any text |
| textarea* | <textarea> </textarea> |
Any text / Required |
| select | <select> </select> |
— |
<select> </select> |
— | |
| checkbox | <input type="checkbox" /> ... |
— |
<input type="checkbox" /> ... |
— | |
| radio | <input type="radio" /> ... |
— |
| captchac | <img /> |
CAPTCHA See How to use CAPTCHA |
| captchar | <input type="text" /> |
|
| submit | <input type="submit" /> |
— |

The syntax of tag is not so easy. You can use Generate Tag menu under Form textarea to make a tag you need.
I show you some examples of tags.
[text your-name 40/100 "John Smith"]This tag is replaced with:
<input type="text" name="your-name" size="40" maxlength="100" value="John Smith" />[email* your-email 60/ id:email]<input type="text" name="your-email" id="email" size="60" />[textarea your-message 80x15 "Write message here."]<textarea name="your-message" cols="80" rows="15">Write message here.</textarea>
[select your-country "China" "India" "other"]<select name="your-country"> <option value="China">China</option> <option value="India">India</option> <option value="other">other</option> </select>
I wrote about tag syntax.
How to use Akismet on Contact Form 7
1. You need Akismet plugin. If you have not activated it yet, activate it first.
2. Open Contact Form 7’s admin page and edit Form text area as:
- Add
akismet:authoroption to the tag of field which requires sender’s name.
Example:[text* your-name akismet:author] - Add
akismet:author_emailoption to the tag of field which requires sender’s email address.
Example:[email* your-email akismet:author_email] - Add
akismet:author_urloption to the tag of field which requires sender’s URL.
Example:[text your-url akismet:author_url]
Once you have activated the Akismet plugin and at least one of the akismet: options is set, Contact Form 7 will send all of a sender’s input as well as any other information related to input activity to the Akismet server. Akismet will then judge whether this input is likely to be spam.
When Akismet judges a message as spam, Contact Form 7 sends no mail and shows a response message with an orange border line (the third example in the picture below).

To make sure the spam filtering is working, send a message with “viagra-test-123” as the sender’s name. If the test is a success, the message will be judged as spam.
Changelog
- 0.9 (2007/04/30)
- Initial release.
- 1.0 (2007/05/20)
- Tag helper.
- 1.1 (2007/08/02)
- File restructuring.
- 1.2 (2007/08/16)
- jQuery Form Plugin introduced.
- 1.3 (2007/08/26)
-
New tag type:
[select] - 1.3.1 (2007/08/26)
- Critical bug about JavaScript loading fixed.
- 1.3.2 (2007/09/03)
- Bug fix around jQuery.
- 1.4 (2007/09/07)
- Akismet spam filtering introduced.
- 1.4.1 (2007/09/11)
- Add Spanish and Catalan translations.
- 1.4.2 (2007/09/13)
- Add German translation.
- 1.4.3 (2007/09/15)
- Add Polish translation.
- 1.4.4 (2007/09/17)
- Add French translation.
- 1.5 (2007/10/07)
- CAPTCHA introduced.
- 1.6 (2007/10/17)
- Mail (2) and UI improvement for admin page.
- 1.6.1 (2007/10/27)
- Sidebar widget support.
- 1.7 (2007/11/27)
-
New tag type:
[select+],[checkbox],[checkbox+]and[radio] - 1.7.1 (2007/12/06)
- Made wpcf7 variable global. Polish translation updated.
- 1.7.2 (2007/12/13)
- Bugfix. Czech translation added.
- 1.7.3 (2007/12/23)
- New
default:andlabel-firstoptions added. - 1.7.4 (2007/12/30)
select+andcheckbox+tag types removed.multipleandexclusiveoptions added.- 1.7.5 (2008/01/26)
- Two fixes and
include_blankoption. - 1.7.6 (2008/03/02)
- New
acceptancetag added.
1,401 replies on “Contact Form 7”
Love the plugin, but agree with the others about the menu placement. Maybe move to a sub-menu when used with Ozh Admin Menu in a future upgrade.
Hi there,
Is it possible to include the Post Title in the email which is sent from your contact form ?
Regards,
TRidley
Not working on latest WP.
Plugin not working with 2.8.2 :((((((
Plugin is great but the current version is not working with the latest WP.
what does not working. I’ve tested it out and it works like a charm?
you say Requires WordPress 2.2 2.5 or higher.
and i use 2.6.5 and i got
Fatal error: Cannot redeclare wpcf7_plugin_url() (previously declared in /home/nashimrs/nashim-bareshet.com/wp-content/plugins/contact-form-7/wp-contact-form-7.php:64) in /home/nashimrs/nashim-bareshet.com/wp-content/plugins/contact-form-7/wp-contact-form-7.php on line 76
hi, i wonder if it is possible to style forms differently on one and the same installation. Where would I have to add css code, in the WP page editor or in the form builder? any suggestion are much appreciated. aim: 2 differently looking forms
With WP the Generate Tag menu is completely gone and for some reason I have to scroll to the right in the Admin area. I know the syntax so it’s not a big deal but it’s still a big loss.
Please remove me from the email notifications of posts. I will follow manually. Thanks.
?? What do you mean? Is it a spam?
[…] Click here to visit the plug-ins website. […]
Is it possible to include this in the WordPress default comment form?
[…] Kontakt habe ich das Plugin cforms mit Contact Form 7 ersetzt – ist nicht so aufgeblasen und reicht völlig […]
[…] Contact Form 7 for Adding Feedback Forms […]
If would be nice to have an option for an ‘image’ field so you could use an image as a submit button.
No it doesn’t work for me..
Bummer..
I get empty mails from the form. ??
It’ looks like he doens’t take the info from the page and sends it to me..
Very strange, i have WP 2.8 (dutch)
thx for version 2.01, but separate “Contact” menu item is still available on Admins Backend. Could you pls remeove this, thx in advance.
Hi,
Just wanted to say thanks for this plugin and let you (and anybody interested) that an updated Norwegian translation can be found at aanvik.net
@aanvik thank you. Great work. May I include your translation and credit into the plugin package?
Sure, feel free to include it.
Thanks. I’ll do that. How about your credit? “aanvik.net” is OK for you?
Mail From in Contact Form uses another email address from a “Mail From” plugin.
Hi there,
Ever since I have used this contact plugin (which rocks btw) I have always had contact emails with the “Mail From” address of my default mailfrom email used in another plugin: http://wordpress.org/extend/plugins/mail-from/
I have put in the [your-name] in the admin field and even put in another email address in there as a test but the other plugin linked above always overrides it. Is there anyway this contact 7 plugin can override the other plugin I use as I’d like to keep both plugins active…?
Meg
I’m getting a fatal error when trying to activate:
Fatal error: Cannot redeclare wpcf7_plugin_url() (previously declared in /blog/wp-content/plugins/contact-form-7/wp-contact-form-7.php:67) in /blog/wp-content/plugins/contact-form-7/wp-contact-form-7.php on line 67
[…] Contact Form 7: Just another contact form plugin. Simple but flexible. | Visit plugin site […]
Something I noticed about this plugin is that, by default, there is no indication that messages send with it are sent from a contact form; it looks like visitors emailed the recipient directly. I had a moment or two when I wondered, “How did they get my email address?”
Do to the power of defaults, I suggest that, by default, messages generated by this plugin say [Contact] in the Subject and, in the body, say, “[your-name], a visitor to [site-name] has sent you the following message: \n”
Makes sense, right? :)
@miyoshi Yes, ‘aanvik.net’ is OK as credit.
How can I feed the contact form data into a mysql db and then redirect to a thanks pages?
Thanks
Visitors are getting the “Failed” error when they use our Contact Form. The server error is as follows…
Date & Time: 8/2/2009 7:55:32 AM
Event Class: File System
Operation: QueryOpen
Result: PATH NOT FOUND
Path: C:\Inetpub\wwwroot\christianrano.com\wwwroot\language\phpmailer.lang-en.php
TID: 5048
Duration: 0.0000098
Any thought on how to fix this?
Thank you,
Chris
[…] easily configurable plugin to create a secure contact form. Takayuki Miyoshi’s solution supports many languages and uses a simple markup language. It also requires a separate plugin […]
Just installed this yesterday on a blog. Love the functionality and features, but it doesn’t seem to work with my mail. Are there any settings I’m missing to allow it to send mail? It claims to have worked fine, but I never received the test message I sent through it.
Can’t say nothing else but a great plugin!
Any idea if there is coming a spreadsheet overview of the results?
[…] Contact Form 7 for Custom Form […]
Love the form, easy install and setting setup. However, i am not getting any of the info in the email sent to me. Can you help? thanx.
is there a way to make the checkbox list render in a single column?
see here on this draft site:
http://designwebmagic.com/NEW/contact-us/
Finally DID figure out how to get all the info sent me in the email. Yehaaa.
thanx
Nothing to complain about. Works great, love the plugin, wanted to say thanks!
So: THANKS! :)
Thanks, too!
Great script.
2 Quick Questions.
Is there a way I can change the recipient address depending on what option they select from the menu?
Also, I’d like either the telephone OR email to be mandatory. So long as they fill out one of them, it’s fine.
Is this easy to configure in the script?
Many thanks.
[…] in the past: use a form. There are quite a few plugins for email forms. The one I enjoy using is Contact Form 7. The simplicity of the form is almost […]
I loved the form so much that I just blogged about it on http://www.socialnetworkingbutterfly.com/2009/08/07/protecting-email-with-contact-form-7html
Simple and easy :)
Thanks!
Thanks for this,
It’s been incredibly valuable for me, and I find it’s installed on most of the WordPress sites I’ve created. I just added it to my 10 Perfect Plugins for Building a WordPress CMS blog post.
Does not work with 2.8.2. When you fill in the form, I only get the contents of the textarea. All other inputs do not come thru ([email* your-email],[text* text-916],[text* address-741])etc. Any idea why?
Nevermind, I am an idiot. Found it at https://ideasilo.wordpress.com/2008/03/29/contact-form-7-faq/#Nothing_shows_up_in_the_email_even_after_adding_a_tag_to_the_form
I would like to add Google Conversion Tracking so that when a website visitor clicks “submit” on my contact form, it is registered by google.
Is there a way to navigate to another page after the user hits “submit?
Thanks,
AJT
I havent used option to use “Mail #2” but i assume it works so that the same email is sent to both “Mail #1” and “Mail #2”
So.. i was thinking why isnt there option to add more than two email adresses? Could be usefull to have more..
Another thing that i had in my mind was that maybe in the form there could be this option to let “contacter” choose who to contant.. alittle like this.. lets say that admin has set 3 emails and three names for those so that there would be 3 names showing in the form.. to choose from by clicking the check boxes so that the “contacter” could choose to send the email to a specific person and possibly 2 persons or all of them..
Hi,
I am having trouble with Contact form 7.
It is working apart from the confirmation message… I receive an email containing the correct details, however the page then redirects to id #wpcf7-f2-p10-o1 (http://www.priorarrangement.co.uk/contact#wpcf7-f2-p10-o1)
Feel free to try the form here
Help would be really, really appreciated.
Thanks in advance,
Dan
[…] This is not my plugin, but if you have put the form to good use you should give a donation. Click here to give the creator some Kudos! […]
Nice plugin man.
Thanks.
First of all, great work!!
I agree with Andrew (https://ideasilo.wordpress.com/2007/04/30/contact-form-7/comment-page-24/#comment-12965) that a so called ‘thank you’ page would be ideal to follow the sales process.
Thanks!
I receive an email containing the correct details, but then the page redirects to id #wpcf7-f2-p10-o1 (http://www.priorarrangement.co.uk/contact#wpcf7-f2-p10-o1) and i get a blank page.
Help would be really, really, really appreciated.
Thanks in advance,
Dan