WordPress Plugins

Contact Form 7

This post is no longer updated. Move to Contact Form 7 official site.

Download | Plugin Homepage | FAQ | Support Forum




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 plugin directory.

  1. Upload whole contact-form-7 folder to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress


  1. 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].

  2. Edit default “Contact form 1” or add new and save it.
  3. Copy [contact-form ...] code and paste it into the content of any posts you need the contact form.


See Contact Form 7 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
email <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> </select>
checkbox <input type="checkbox" /> ...
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>

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:author option to the tag of field which requires sender’s name.
    Example: [text* your-name akismet:author]
  • Add akismet:author_email option to the tag of field which requires sender’s email address.
    Example: [email* your-email akismet:author_email]
  • Add akismet:author_url option 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.


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: and label-first options added.
1.7.4 (2007/12/30)
select+ and checkbox+ tag types removed. multiple and exclusive options added.
1.7.5 (2008/01/26)
Two fixes and include_blank option.
1.7.6 (2008/03/02)
New acceptance tag added.

1,401 replies on “Contact Form 7”


You cannot call or link to this contact form without using a page or post. It is needed to be embedded in the content area of a page or post.





ひゅっくり さん、




I really like your plugin, simple without all the extra stuf I need. But it seems when the form is filled out and sent, it shows a “sent successfully” message. But when I receive the message, it doesn’t show the message, but instead shows the [your-subject] and [your-message] tags in the email, no sender, no message. Did I miss a step? Please help,

Thank you

Nevermind, i fixed it, I changed the name of the text field and forgot to change the tag in the email format. One question though, is there a way to fix the apostraphes in the message? I get backslashes in my received messages when an apostraphe is used in the sent message. Is this a php thing?


I get backslashes in my received messages when an apostraphe is used in the sent message. Is this a php thing?

Ah, it’s a bug. I’ll fix it in next release. Thanks for telling me!

I got so far as to build my contact form – and then realized it won’t work in a sidebar. Up until then I was really impressed with ease of use.

Any plans for putting it in a sidebar for a future release? Or hacks you can point me towards?

Keep up the good work.



>>is it possible to put the function-data out of the website into the functions.php ?<<

When i put the Contact form into my page and look at the code there is a lot of code posted into my page. is it possible to put this code anywhere else, maybe into the functions.php ?

an other question, can i put php into the Form ? like IP adress and date like date(‘d.m.Y’)



No, unfortunately, all features you say are not supported. They are too complicated to implement in this simple plugin. But I’m considering to do [ip_addr] tag or such…



1) It’s must be used in inside of content area of Post/Page. You can’t put it outside of them so far.

2) There are empty <div> element in the bottom, so there are spaces. You should add padding to the “.wpcf7” in CSS.


have installed version and it appears activating Akimet in the form options is causing a send message fail.

without Akimet sending is successful



Looks like a really nice plugin. I’m having problems with configuration. I tried out the sample you have put in for beginners. It worked fine. Tried to put in:

[select noget “windsufing” “surfing”]

The select option appears in my form on my test-site – I select – but in the email I receive there is no indication of my selection.

Any idea?



一つ質問があるのですが、[contact-form ...] のコードをコピーして、コンタクトフォームを表示させたい投稿の本文にそれをペーストする。とありますが、これをテンプレート内に直接記述する事はできますでしょうか。試しているのですが中々うまくいかず、可能であればご教授いただけると助かります。宜しくお願いいたします。

atfactory さん、


現在投稿内容に[contact-form 1 "Contact form 1"]を記述して読み込みを行っているのですが、コメントフォームのような扱いでシングルページに常時同じフォームを設置したいと考えております。そこで、毎回投稿内容に記述するのも面倒なのでsingle.php内にこのコードを埋め込んで、読み込ませようと考えたのですがよくわからずコメントさせていただきました。お手数おかけしますが宜しくお願いいたします。



best contact form plugin for wordpress so far! Just wondering if the tons of lines it adds to the source code in the header is necessary and maybe bad for SEO and Performance?


Didn’t you see a result message after you submited? If you saw “succeeded” message, mail was sent correctly, check your spam filter. If you saw “failed” one, it failed, something was wrong.

i get this message:
Your message was sent successfully. Thanks.

i dont have any spam filtrer and have try with several mail!


It means that mail sending function has successfully completed. If you don’t receive a mail, mail servers or something were not working properly. Do you receive other mails form WordPress, such as comment notification?

Hello. Great plugin! Thank you for all your work!
I’m wondering if there is a way to filter out the several lines of code that the Contact Form plugin places into the HEAD section of the page for pages that are NOT using the contact form.

Other plugins allow filter of the code with something like
placed within conditional tags.

Is anything similar possible with this plugin so all the Contact Form 7 related “head” tags do not show up on every other page in the site?

I’m using this contact from in my blog, and now I’m free from spams.

thanks for this wonderful plugin. :)

Is there a way to prevent the WP-Contact form javascript file from being included in all the pages??

I installed your plugin but it hang ups when I try to send an email and it doesn’t send anything. I use wp 2.3, Unix server.
what should I do?

Livingston Samuel,

Thanks for comment.

Is there a way to prevent the WP-Contact form javascript file from being included in all the pages??

No, no such a way is supported.


I installed your plugin but it hang ups when I try to send an email and it doesn’t send anything. I use wp 2.3, Unix server.
what should I do?

The most posiible cause is a conflict with other plugins. You should deactivate all plugins and try them one by one.





Nippon 2プラグインも試したのですが効果は見られませんでした。






Hello Miyoshi san and thank you very much for your hardwork.
I’ve installed this plugin in my site few days ago but when I send myself a test message, I receive nothing at all even though I do get a “your message has been successfully sent” message.
I’ve read the comments here and your instructions on how to install but didn’t find anything to help me through this problem.

May you help, please ?


taro さん、

ご報告ありがとうございます。あいにく僕の手元に Mac がないのでテストができないんですが、思い当たる所があったので修正を行いました。今日リリースした 1.6.1 を試してみてください。もし直っていたらまたご連絡いただけると助かります。

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s