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”
Deniz Guenay, yes, I have a plan to support file attachment. I think it doesn’t take time so much.
beardedgit, no problem. I often misspell my name, too :) BTW, automatic upgrading has some improvements and bug fixes in WP 2.7, so you might be able to resolve it by upgrading to WP 2.7. I’m doubting that font files used for captcha or translation files are the cause.
OK, I’ll wait until WP 2.7 is fully-released and try again after I’ve upgraded to it. Thanks for your help.
[…] Posted in WordPress Tips このブログのメールフォームに使っているプラグインContact Form 7 v1.8.1.1の更新通知が出ていたので自動更新したのだけど… […]
Oh Cool! Thank you Miyoshi for your reply. I look forward for this option. Bye Deniz
Is there not anyone else out there wanting to hide a field that’s not filled in??
This is the situation, I’ve got a client who’s selling wine online. He wants only the filled in boxes from the form, and not any box that has been left blank – to avoid confusion. Is there a solution to this?
All the best and thanks for a great plug-in!
Awesome plugin – very easy to add and use – thanks!
miyoshi,
When I run W3C – CSS Validator (http://jigsaw.w3.org/css-validator/) on my website and found the error about Contact Form’s stylesheet.css which is not found even if I checked if I have stylesheet in that folder. It’s there. I find that very odd. Any idea why it’s not found if that file is already existing in the right directory?
i installed the plugin but when i try to put the code into a post or a page it doesn’t convert the html to a form. any ideas? this is the code i’m using:
Your Name (required)
[text* your-name]
Your Email (required)
[email* your-email]
Subject
[text your-subject]
Your Message
[textarea your-message]
[submit “Send”]
LeviathanC, I confirmed the issue on your site. And I couldn’t see any CSS in the url pointed. It rendered the top page. There might be something in the URL rewriting. You should check if some doubtful plugins are running.
melanie, you don’t have to insert those codes into post directly. Use
[contact-form n ...]code instead. Read this page and FAQ.[…] Contact Form 7 Why it’s important: If you don’t have a contact form then people cannot get in touch with you for any reason. Even if they can contact you, the contact form makes it a much easier and more anonymous (they don’t show your email address) process. In my search for a contact form this was the easiest one to use and set up. Just set up the form (you can create multiple forms), create a page, and then pop in the content form code, as well as any associated text you want. This plugin is also highly customizable so you can make various forms to use as surveys or other submission style forms. All that’s left to do is link to the page you’ve created with your contact form on it and you’re all set up. […]
[…] Contact Form 7 […]
Hello when i use this plugin with mail from plugin it doesnt show mail sender adress. instead of showing mail sender adress it shows no-reply adress.
do you have any idea to solve this problem?
[…] Contact Form 7 – A simple but flexible contact form plugin that handles multiple forms and also includes a CAPTCHA feature to help prevent bots using the form […]
Is it possible to send HTML formatted email?
ipork, maybe possible. I haven’t tested yet.
[…] فرم تماس […]
miyoshi, I’ve tested and I can’t figure out how to make it work :) If you’ll be able to do it just write it down. It would be a great plus for your usefull plugin.
Hello, i really love this plugin and it works perfect, the problem i have is that i wont validate Strict! There is a tag missing after the submit button form stuff. I think its some where in the php code but i cant find it, any ideas? help would be very grate full thanks.
okay looked at my comment above and its deleted the tag, its missing a closing p tag.
Okay now i worked it out! If any body else cant validate there form, you need to add a closing p tag at the end of the [ submit button ] element. I think this may need to be fixed!
[…] Contact Form 7: simple but flexible contact form complete with CAPTCHA. […]
[…] Contact Form 7 : permet de créer des formulaires de contacts personnalisés. Je sais qu’il existe un autre plugins bien plus puissant et beaucoup plus recommandé mais justement je le trouve trop puissant et chiant à paramétrer alors que Contact Form 7 est facile à prendre en main. […]
First of all, thanks for this very handy plugin! Second, is it possible to customize the style of the ajaxy overlays? Their style doesn’t really go with my sites theme. Are the border, font, background (etc) of these hardcoded in the PHP or can I modify them with CSS? Thanks!
[…] domowa wtyczki: cforms II Zasoby WordPress: cforms II – contact form Polska wersja: Tomasz Ignatiuk, Kasia, […]
Adam Overlock, yes, use CSS, contact-form-7/stylesheet.css in your plugins folder.
[…] prevent duplicate content and other optimization options. A must have. 4. Contact Form – A simple and must have plugin. This your everyday “Contact Form” that is used to […]
First I would like to thank you for the wonderful plugin! Second I seem to be having an issue you touched on above
Case 1: Error of sending mail is occurring on your server. In this case, the border color of the error message is red. This is not matter of the plugin. You should check PHP settings and condition of your server.
This seems to be my problem, but I am unsure of what could be wrong on my end. Could you point me in the right direction? I appreciate your time!
i used this plugin but i have a problem with ie7 textarea doesn’t show.
http://www.turevinsaat.com/iletisim
contact form work well with firefox…
please help me…
[textarea mesaj 50×5 “Mesajınızı buraya yazınız…”]
this is my code which i used now…
Hi there,
This is a most useful plugin, i like it better than CForms :)
Tip for anyone who isn’t planning on using the captcha option: you can safely delete the folder ‘gentium’. It reduces the size of the plugin from 2.75mb to 500kb.
[…] Contact Form – Here is a simple and easy way to install a contact form, or most any type of form to collect information from your visitors. Includes ability to create and display multiple forms on your site and send results up to 2 separate email addresses. […]
[…] Contact Form 7 […]
First of all, i have to thank you.
This is definitely a great plug-in.
is there a way to define a different url (of a page or post in my site) that will be displayed after I the submit button is pressed?
Thank you so much for this! I’ve tried two or three other plugins, then tried writing my own form (and failed), and finally found yours, which is perfect. Thanks for all the customization ability, which is exactly what I needed and couldn’t find with the other plugins.
[…] Contact Form 7 – Simple but flexible contact form plugin. […]
Kari, can you recieve other mails like comment notifications from WordPress?
azmiii, validate your HTML first. I recommend XHTML-CSS Validator.
Yaron Tarshish, no, it does not have such feature. Why is it needed?
First of all let me say that this is an excellent WP plugin. While testing it I’ve noticed that I get following small error indication from Firefox visiting a test site main index page, ie not viewing any page with an active contact form:
jQuery(“div.wpcf7 > form”).ajaxForm is not a function
http://###/wp-content/plugins/contact-form-7/contact-form-7.js
Line 5
Suggestion what this might be and how to fix it?
[…] Contact Form 7 by Takayuki Miyoshi […]
[…] in your RSS feeds. This widget gives you as much or as little control over your RSS as you want. Contact Form 7 – Add a “Contact” page to your blog. The perfect way to allow further interaction for […]
Hello,
I did not manage to make the plugin work with this one:
http://ajaydsouza.com/wordpress/plugins/wp-niceforms/
Is it possible ?
Thanks for this plugin man…I tried cform and it to darn much for what I need and it was too darn complicated…Your was perfect…Except for maybe being able to edit the CSS of the form more easily the editing the template.
Dear Takayuki Miyoshi,
I am currently using your plug-in for my website. It’s very useful.
I was wondering if you could work on making the error messages editable for me as I would like to re-phrase them.
Could this be done through the dashboard as an additional option for us?
(Image url on this page of what we would like to be made editable: https://ideasilo.files.wordpress.com/2007/10/result-messages.png)
If this is possible could you do an upgrade of your contact form for us? If you plan to do this could you let me know how long you reckon it would take?
Regards
Lee Mather
Lee Mather, the latest version allows you do that.
I have been attempting to download Contact Form 7 and have been receiving a 404 error (Page not found.) Can you please assist?
same here
I’ve noticed that this plugin won’t automatically update anymore. The latest version for WP2.7 keeps coming up as a fatal error, even if i manually install the plugin.