FC2ブログにCAPTCHA機能付きのメールフォームを設置する

FC2ブログには公式プラグインとして、サイドバーに設置できるタイプのCAPTCHA機能のついたメールフォームがあります。メールアドレスをBlogに載せる必要もありませんし、使っている人も多いでしょう。

ただ、私はこの機能を使用していませんでした。見てのとおりこのBlogのサイドバーにはすでに色々なものが設置してありますし、滅多に使われない上にかなりの高さがあるフォームを置く気にはなれなかったのです。代わりに同じFC2のサービスの一つであるFC2フォームレンタルを使っていました。(Blogと同じIDで使えますからね。)

ところが先日、このフォームから大量のスパムメールが送られてきました。新しいツールができたのか、たまたまターゲットにされたのかはわかりませんが、FC2フォームレンタルはspamに弱かったということです。確かにFC2ブログのプラグインにはCAPTCHAがありますが、FC2フォームレンタルの方にはCAPTCHAがありません。

急遽FC2フォームレンタルを使うのを中止し、公式プラグインの方のメールフォームをサイドバーに置かずに使うことにしました。これならサイドバーの領域を使うことはありませんし、spamも来なくなるでしょう。今回はこの「サイドバーに置かないメールフォームの作り方」を紹介します。

FC2ブログでのCAPTCHA付きのメールフォームの作り方

概要

メールフォームのソースを一部変更し、エントリとして投稿するだけなので非常に簡単です。私の場合はエントリとして投稿せず、HTMLファイルを作って外部ファイルにしていますが、普通はそんなことをする必要はありません。(私の場合はメールフォームだけのRSSを配信したくなかっただけです。)

ソース

以下のソースを使います。一部不要な文字列と、スタイルを消しているだけです。見た目にこだわらなければプラグインからそのままコピーしても使えます。

<form action="./" method="post">
	<p>
		名前 :<br />
		<input type="text" size="25" name="formmail[name]"  value="" maxlength="100" /><br />
		メール :<br />
		<input type="text" size="25" name="formmail[mail]"  value="" maxlength="150" /><br />
		件名 :<br />
		<input type="text" size="25" name="formmail[title]" value="" maxlength="150" /><br />
		本文 :<br />
		<textarea name="formmail[body]" cols="40" rows="6"></textarea><br />
		<input type="submit" value=" 確認 " />
		<input type="hidden" name="mode" value="formmail" />
		<input type="hidden" name="formmail[no]" value="&amp;formno" />
	</p>
</form>

作り方

  1. 「プラグインの設定」から公式プラグインの「メールフォーム」を追加
  2. 追加したメールフォームの「詳細」を選び設定画面へ
  3. 「表示の設定」を「表示しない」、「メールフォームの設定」でCAPTCHAをONにする
  4. 「新しく記事を書く」から上記のソースをコピーして、「改行の扱い」を「HTMLタグのみ」にして記事を保存
    • 投稿区分は当然「公開」、タイトルは「メールフォーム」などでいいでしょう。
    • 直接的には関係ありませんが、コメントやトラックバックは「受け付けない」でいいと思います。
  5. Blog内のどこかにメールフォームというリンクを作って投稿したエントリにリンクさせる

これでCAPTCHA機能付きのメールフォームは完成です。正常に動くかどうかは自分でテストしてみるといいでしょう。