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”
Cheers Miyoshi,
The main problem is that is starts to list icoons vertically instead of horizontally. Take a look at my breadcrums on my forum and for example at the breadcrums of the authors forum
http://www.id-sphere.com/?page_id=19/eco-design/interior-design-scholarship/page-1/post-43/#p43
Take a look at the top of the forum. See how my crums are verticle: Forum – ECO design – Inter Design Scholarship.
Now take a look at http://www.stuff.yellowswordfish.com/support-forum/enlarger/over-text/page-1/
Home – Forums – Enlarger – over text
If you compare the two you will see it does it with other part of the header as well.
Hope this helps.
Cheers,
Lizzy
please add remote SMTP support if possible ;)
[…] Contact Form 7 Makes creating online forms easy within WordPress. […]
Wouldn’t it be nice to choice a language for every form separately?
I’m using Contact Form 7 on the multilanguage site and would like to make contact form for each language. Yes, I can the forms in each language, but the plugin response are still in site’s default language…
BTW I use qTranslate for multilanguage.
I want to format TEXT messages. When any form messages forwarded–they are blocked by email domains including hotmail. Think they are SPAM… How can I remove the HTML from the messages.
Thanks for this, works good! Lance
Dmitri, maybe you will like the next version.
Jerome, very difficult. BTW, I don’t think Akismet treats message as a spam even if it includes HTML tags, there must be another reason.
Firebug shows the following error for me:
jQuery(“div.wpcf7 > form”).ajaxForm is not a function
The form still works, but this is causing my code to not be valid. Is there anything I can do to fix this?
BTW I like the plugin alot just kinda annoying to have an a pesky error. I think my theme is in jQuery too, so maybe that is the problem?
[…] author’s name is Takayuki Miyoshi and the plug can be downloaded from his site or you can download directly from WordPress if you […]
Just wanted to say thanks for this plugin. It’s great.
Quick suggestion: In check box forms, the label and the chexkbox should not appear on different lines. Perhaps a css tag of ” white-space: nowrap;” could be inserted in the CSS for the “wpcf7-list-item-label” class.
PS: An example is here: http://www.nespi.org/contact/help-request/
Andy,
yes, I think so. The theme calls jQuery 1.2.1 just before
</html>. This style is not standard of WordPress. It must causes conflicts with plugins using jQuery.nespi, good suggestion, but
should also not break a line.Hi miyoshi,
How are you? Thanks a lot for this wonderful plugin.
I can’t seem to send the form using Firefox though it works like a charm using I.E. here’s the link.
http://deborjalaw.com/contact-us.html/
The form hangs when I’m sending it using firefox.
Thanks for your time.
thorn, the site needs HTML validation. There seems to be a redundant
<ul>.[…] the comments, but I do have captcha in place for logins with Raz-Captcha and my contact form with Contact Form 7. This keeps bots from spamming and trying to crack your login. If anyone knows of a captcha system […]
Miyoshi thanks for your reply,
I could not figure out where to edit that part. I spent the entire day looking for it.
error part:
Tags
It is not in the “Theme Editor” sidebar.php / template.php etc… is it part of the core file?
Where can I edit it?
I know it’s not part of your plugin anymore but your help will forever be treasured.
Thank you again and more power.
[…] installed the cool Contact Form 7 plugin to replace the previous contact form that was not […]
I suppose you should check the sidebar.php in your theme and sidebar widgets you’re using.
Correction, it’s not redundant
<ul>, but<ul>allowed to have only<li>s as its content so it’s not valid anyway.thanx dude
hi. Thanks for plugin
perfect.
Regards
[…] one more (because I really like it). Contact Form 7 (which is highly customizable), developed by Takayuki Miyoshi. Now when someone (like you) wants to […]
I apologize if this is a dumb question but where exactly do I input the e-mail address where I would like to have the content of the message sent to? Thanks in advance for your help.
Sergio, open Manage > Contact Form 7, you can find To: field in Mail group, just enter the mail address into the field.
Hello !
Is there a way to insert a date using a calendar into Contact Form 7 ? I am trying to do a form for departure and arrival, and i don’t want users to enter date manually (but using a calendar). Is this possible ?
Thank you !
MonkY, unfortunately, no, for now. It would be nice if realized. Thinking to enter it to my to-do list.
Thx miyoshi ! It would be a great feature indeed…
Hello,
Is it possible to configure the plugin so that the user has to choose to which email to send the message?
For example:
send to (select one):
webmaster []
administration []
sales []
Thanks.
Guillermo, no for now, sorry.
[…] Contact Form 7 – 简洁高效的表单插件. […]
[…] Contact Form 7 is a really easy to use and powerful contact form for WordPress. I like the “captcha” […]
Hello,
Thanks for a GREAT plug-in!!
I’ve got a small question: is it possible to hide not filled in fields, or rather Options from an option list in the email that gets sent?
Best regards
In WordPress 2.7 beta, you can’t choose other forms you make aside from the first one. links dont work.
[…] Contact Form 7 does my contact page. […]
[…] Contact Form 7 (iDeasilo) — Not robust, but highly functional. I use it principally for maintaining a contact form. […]
[…] Contact Form 7 – O plugin Contact Form 7 permite-lhe gerir múltiplas fichas de contacto, podendo inclusivé gerir e customizar as suas fichas de contacto. A ficha suporta Ajax para submissão, CAPTCHA, e filtro de spam Akismet. […]
Tony, Contact Form 7 1.8.1 works with WordPress 2.7. Try it.
[…] Contact Form 7, qui vous permet de créer un formulaire de contact, dont le message vous sera envoyé par mail. C’est celui-ci même qui est utilisé dans ma page de contact nouvellement créée. Entièrement configurable, vous pouvez choisir des champs par défaut, ou tout customiser vous-même en XHTML (pour utiliser des class à vous par exemple). […]
I’m trying to upgrade automatically to 1.8.1 and I’m getting this error:
Could not copy file: /www/wp-content/plugins/contact-form-7/languages/wpcf7-zh_CN.mo
ryan76nz, Are you seeing that error every time? or once? It seems that errors occured on FTP session. I’m not sure but thinking this is not an issue of the plugin.
Automatic upgrade fails for me too, hangs after
“Downloading update from http://downloads.wordpress.org/plugin/contact-form-7.1.8.1.zip
Unpacking the update”
Tried the update several times now, same result every time.
I’m running WP 2.6.3. Is this update just for 2.7 users?
[…] 4) Contact Form 7 […]
beardedgit, no, I think you can use automatic upgrade on WP 2.6, too. It seems that something is wrong but I don’t know the cause. Can you auto-upgrade other plugins? or have trouble only with this plugin?
I LOVE your contact form. It is extremely easy to use, and works very nicely.
One feature I would love to see is if it could work outside of a page/post without using widgets. I’ve used a few plugins (NextGenGallery, etc) that are able to do this by using a few extra lines of code. Is there any way to do this?
Thanks again for the great plugin!
Thank you for the plugin, I love it!
I use this plugin for some online forms and I need a file attachment function to upload a file with the Contact Form 7. Are you planing to develop this function?
Your plugin is very godlike and usefull for online forms. Thanks =)
Deniz
[…] dodatków do WordPress-a. Autorem skryptu jest dość znana osobliwość w świecie WordPress-a iDeasilo. Ściągnięty plik należy rozpakować, a następnie wrzucić do katalogu z […]
Hi, myoshi
I’ve been able to auto-upgrade many other plugins, but not this one. Although the update fails to complete, the previous version (1.8.0.4) seems to be intact and running OK, so nothing is broken. I’ve just tried to auto-install 1.8.1.1 but it didn’t work.
Curious, eh?
Oops! Please accept my apology for my incorrect spelling of your name, miyoshi. Sorry.