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”
I installed v2.0 to find that all my formatting (em, strong, br, etc) had gone. It now lists the formatting code in the text of the form itself. You can see an example of the mess at http://www.uuca.org/children/children/adult-volunteer-opportunities
Is there a way I can fix this? Or could I get a copy of a pre-2.0 version so that I can keep my formatting?
Any thoughts how to integrate a contact from goal page for use with Google analytics? I tried using on_sent_ok: “pageTracker._trackPageview(‘/thankyou’);” with no success. Thanks!
cool!
Great stuff! :)
Just one question: Is there a seperate CSS file to change the design of the form?
Thanks for sharing this!
[…] Contact Form 7 – Forming relationships with your readers is your blog lifeline. Replying to comments is important, but sometimes there is a personal note, request or even a joint venture that doesn’t belong in your comments. Using this plugin will set up a Contact form for you automatically that you can add to a new page as your Contact Us page. Simple! […]
I upgrade to 2.0.1 but can’t create the table.
It shows you must create table, but nothing happens when I click on it.
Thank you.
Hi,
Can someone help?!?!? Going crazy here!
I have a form with these tags. When I get the email it doesnt bring any of that data through? Any ideas?
Date of Birth
Month
[select Month include_blank “Jan” “Feb” “March” “April” “May” “June” “July” “Aug” “Sep” “Oct” “Nov” “Dec”] Day [select Day include_blank “1” “2” “3” “4” “5” “6” “7” “8” “9” “10” “11” “12” “13” “14” “15” “16” “17” “18” “19” “20” “21” “22” “23” “24” “25” “26” “27” “28” “29” “30” “31”]
Year
[select Year include_blank “2004” “2003 ” “2002” “2001” “2000” “1999 ” “1998” “1997” “1996” “1995” “1994” “1993” “1992” “1991” “1990” “1989” “1988” “1987” “1986” “1985”]
—-
Gender
[select Gender “Male” “Female”] Height ft [select ft “4” “5” “6” “7”] in [select in “1” “2” “3” “4” “5” “6” “7” “8” “9” “10” “11”]
—-
Weight in lbs [text* Weight 05/]
—-
Tabacco Use [select Tabacco include_blank “I use Tabacco” “Never used” “Quit in the last year” “Not used for 2 years” “Not used for 3 years” “Not used for 4 years” “”]
—-
Please tell us about any Medical conditions[textarea your-message-713 29×3]
—-
Insurance Amount Required [select* CoverageAmount include_blank “$10,000” “$15,000” “$20,000” “$25,000” “$30,000” “$35,000” “$40,000” “$45,000” “$50,000” “$60,000” “$70,000” “$80,000” “$90,000” “$100,000” “$150,000.00” “$200,000.00” “$250,000.00” “$300,000.00” “$350,000.00” “$400,000.00” “$450,000.00” “$500,000.00” “$550,000.00” “$600,000.00” “$650,000.00” “$700,000.00” “$750,000.00” “$800,000.00” “$850,000.00” “$900,000.00” “$950,000.00” “$1,000,000.00” “$1,100,000.00” “$1,200,000.00” “$1,300,000.00” “$1,400,000.00” “$1,500,000.00” “$1,600,000.00” “$1,700,000.00” “$1,800,000.00” “$1,900,000.00” “$2,000,000.00” “$2,250,000.00” “$2,500,000.00” “$2,750,000.00” “$3,000,000.00” “$3,250,000.00” “$3,500,000.00” “$3,750,000.00” “$4,000,000.00” “$4,250,000.00” “$4,500,000.00” “$4,750,000.00” “$5,000,000.00” “$5,500,000.00” “$6,000,000.00” “$6,500,000.00” “$7,000,000.00” “$7,500,000.00” “$8,000,000.00” “$8,500,000.00” “$9,000,000.00” “$9,500,000.00” “$10,000,000.00”]
—-
Daytime Telephone [text* Daytelephone 20/] Evening Telephone [text* Eveningtelephone 20/]
—-
First Name [text* Firstname 20/]
Last Name [text* Firstname 20/]
—-
Your Email (required)
[email* your-email]
[submit “Get Quote”]
Sehr interessant, gleich mal ausprobieren.
Danke.
Guess this plugin development is dead..?
Doesn’t work with WP 2.8.4, same error as the comment above.
Hi,
I got it! In the email that goes to your address you need to reference all the items you want to come through to you.
So use [Amount] if one of your forms is for amount.
New to WP.
I am using contact form 7. After form submission i want to redirect to thank you page. How to do that?
good plugin bro
Joia, muito bom este plugin, é uma mão na roda.
Valeu!
Mail doesnt arrive in my inbox ??
We’ve used Contact Form 7 successfully for about a week with the Akismet plugin in the tags. In fact, I copied one of the Akismet examples for our tag. Everything worked fine and we saw the message confirming the form was sent. The information was received without a problem. For some unknown reason the form stopped working. No confirmation or other Akismet message and no email received.
I’ve re-installed the plugin with no success. I noticed the old version of the form was somehow retrieved.
First, I’d like to get rid of it’s “memory” of the old layout as it may contain whatever bug that now prevents the form from working. Most importantly, I’d like to fix whatever is in the code some where that caused the problem in the first place.
Has anyone seen this before? Can anyone assist? Thanks so much!
I have the same question as the person above. When you are setting up your email to show the results of this form, what do you type to show whether the Gender radio button turned out to be Male or Female, or what Month was the birth month that they chose on a drop-down menu, etc.?
If someone could just write the code here for them to make the answers show up in the email… I saw the note re: above, is that what is missing?
choice of gender: [radio Gender]
or for date of birth: [select Month] [select Day] [select Year]
should it be something like [radio Gender ] …or how do you write it?
Thank you.
oops…meant to ask if it should be like this:
[radio Gender ]
will this show the answer of either male/female?
New to WP.
I am using contact form 7. After form submission i want to redirect to thank you page. How to do that?
All I get is an empty brown box with no code to copy over to the pages. Anyone else have this problem?
[…] Contact Form 7 Remember PHP Phorm? This plugin puts it to shame. Its just sooo simple to use. We’ll cover how to capture Google analytic goals when in AJAX mode when we get to this in a later post. […]
Feature request: For checkboxes, use <label> so the text is clickable.
Feature request: In the emails, checkboxes should include the prompt always and indicate boolean value (T/F, ✓/O, Checked/Unchecked, Yes/No would work)
[…] Contact Form 7 […]
i was able to install the plugin and create a contact page with the form on it, but the page does not show as a tab on my blog site. How can i get it to show up as a page tab?
The plug-in tag (for embedding) isn’t being parsed for some reason! On my own blog (http://blog.monkey-house.ca) it’s working fine, so I’m pretty confident that it’s not user error in terms of getting the basic instructions right.
But on another site I’m building, all I see is the actual text including square tags:
[contact-form 1 "Contact form 1"]
No actual contact form gets embedded. I’m not ruling out user error, I’m just saying that for some reason on my personal blog it’s working but on this other blog all I see is the above text and square braces.
Any ideas why this might be?
Cannot get file attachment to work – I receive email but no attachment –
Upload completed Advertising Contract Form [file file-610 filetypes:pdf]
and under the MAIL section i have tried [file-610] and [file file-610] under the file attachment fields
HTML checkbox ticked
ANY IDEAS????
i installed on multiple sites and it worked, left the country and came back to complaints of it not working and clients loosing money because of it!!!!
the form wont send the contents of the email. it sends the email but not the “message”
Nice plugin man.
Thanks admin
Great plugin! I’ve used it on many sites. I have a problem now as I’m trying to install it on a Windows server. I have also set up the Swift SMTP plug in but can’t get Contact Form 7 to work. I’m using WP 2.8.4. I just get spinning arrows. Anyone have the same problem?
There’s a way to make contact form call the CSS and JS only in pages that have the form, and not in the whole site?
Thank you plugin
[…] Contact Form 7 – Every major blog has a contact form. They used this plugin to create […]
Hi – on the inner pages of the website – http://www.mobilesquaredroadshow.com/?page_id=16 – the contact form seems to be overlapping the boundary of the website. Is there a way of fixing the width?
Ed
If I make changes to the stylesheet will they get overwritten when there is a plugin update? It would be nice if the plugin checked the existence of the stylesheet in the theme directory and if it exists include that instead of the stylesheet in the plugin directory.
I searched the WordPress support but didn’t see anything about this.
I installed, activated, and inserted the contact form on my page successfully, but when I test it out by filling out the form I do not recieve an email? I get the successful message, but no email is sent?? Any ideas why?
Wonderfull plug-in. Thank you.
@ Ed, 21st August
Did you ever find a solution? Have you tried different browsers?
I set widths for IE and they look lousy in FireFox – set the widths for FF and they are lousy in IE.
What to do?
Hi there, does anyone know of a way to program the current post title into the form, maybe in a hidden field, so that the email recipient knows where the enquiry came from ? The alternative is to create a form for each post with the title hard coded (which seems unnecessary).
???
nach dem Hochladen des Ordners für das Plugin ist dieses unter “Plugins” sichtbar – sobald ich auf aktivieren klicke erscheint die Fehlermeldung:
ERROR 500
Danach kann ich mich nicht mehr als Admin anmelden.
Erst nach dem Löschen des Pluginordners ist eine Anmeldung möglich??
Wer kann mir helfen?
The email I’m receiving doesn’t use the values from the contact form, but is from “World Wide Web Owner ” instead. I haven’t changed any of the default options for the plugin. Any suggestions on how to fix this? It makes the contact form useless if you don’t know who’s emailing you.
[…] Visit author’s website […]
Thank You bro
i look alot alot for int
i’ll customize it and then put it in my Blog
thanks again
[…] Contact Form 7 On the odd chance that anyone actually reads BS and hopes to get in touch with me about BS, I decided to check out the Contact Form 7 plugin. […]
[…] fields, etc.,) it would be more beneficial if you simply started with the pre-built form and then learned more about the plugin moving […]
As far as wordress contact form plugins go, this is by far the best available. It’s always at the top of the popular search. However, I see one drawback. It needs a function for placement outside of the page/post/widget arena. If you could do this, I could see this widget remaining supreme for some time to come. I would develop all my themes with support for contact forms 7
No threaded comments so I hope this doesn’t get lost, but I solved my shorttag not being parsed problem.
For some reason, the theme I was using used the following code to embed post content:
When all that was needed was:
Zippity-zap, all fixed up. I never thought it was the Contact Form 7’s fault, I was just hoping someone would have some ideas. Luckily I solved it without too much difficulty, meaning I get to use one of the top contact form plug-ins available. ;-)
Greg
[…] of the top WordPress plug-ins to download is Contact Form 7 (best form plug-in in my opinion). One great thing about this plug-in is that it automatically […]
[…] contact în WordPress am scris mai pe larg acum doi ani în acest articol. Revin acum recomandând Contact Form 7 (sau din directorul oficial de pluginuri), un plugin care poate nu este cel mai simplu de folosit, […]
[…] Form7-wordpress 官方下載[4] Contact Form7製作者網站[↩]Really Simple CAPTCHA[↩]really-simple-captcha製作者網站[↩]Contact […]
Can reCaptcha be used with it. if yes then how ?
I was having the same problem as some other people with select menu values not showing up in the email. Here’s what the code should be (in this case I wanted users to pick the email address the form would be mailed to from a drop down menu).
1. Mail to: (required)
[select* contact_emails include_blank “contact1@mail.com” “contact2@mail.com”]
2. In the To field I replaced the default with [contact_emails]
Works like a charm! Great plug-in, thanks!