Contact Form 7 スパム Akismet

ユーザーからの問い合わせ窓口を簡単に作成できるContact Form 7ですが、メールフォームである以上、スパムメールの問題は必ず発生します。
スパムの対策を何も施さないと大量のスパムメールが毎日届くことになり、メールボックスがあっという間にいっぱいに・・。

当記事では、Contact Form 7 のスパム対策について解説していきますが、実装方法はいくつかの手段が用意されています。
プラグインで簡単に実装する方法の他にも、コメントスパム対策用プラグインAkismetを連携させてContact Form 7のスパムメールも回避する方法についてもご紹介します。

 

Akismetがインストールされてない場合はこちら
Ref: AkismetプラグインのAPIキー取得や設定方法|スパムコメント対策

確認チェックボックスや確認画面を利用してスパムメールを回避する方法はこちら
Ref: Contact Form 7|誤送信防止の確認チェックボックスとプラグイン

 

 

スパムメールを防止するContact Form 7 Honeypotプラグイン

Contact Form 7 を設置し、ブログを運営していると大量に届くようになるスパムメール。
かなり鬱陶しいことこの上ないですが、Wordpressにはこのスパムメールを回避してくれるプラグインが用意されています。

Contact Form 7 Honeypot は簡単にお問い合わせフォームに実装することができるので、難しいコードを記載しなくてもスパムメール対策できるところが非常に有り難いですね。

このContact Form 7 Honeypotは、スパムロボットの挙動を逆手にとった仕組みになっています。
スパムロボットは、全ての項目に自動入力するプログラム仕様になっていますが(今のところ)、Honeypotプラグインは、ユーザーから見えない入力欄を作ることによって、そのフォームに

何か入力がされている→スパム
何も入力されていない→人間

という判断をし、スパムの場合は送信しないようにしてくれるのです。
賢いですね^^

これを導入することで、100%とはいえませんがかなりの確立でスパムを回避することができるようになるので、スパムでお悩みの方はぜひインストールしてみてくださいね。

 

インストール&設定手順

それでは早速、Contact Form 7 Honeypotの設定をしていきましょう。


1. Contact Form 7 Honeypotをインストール

まず、ダッシュボードメニューの

プラグイン>新規追加

から、Contact Form 7 Honeypotを検索して「今すぐインストール」をクリックしてインストールし、有効化してください。

495_2

Ref: WordPressプラグインをインストールする3つの方法と有効化

 


2. Comtact Form 7 の設定画面(お問い合わせフォーム)

Contact Form 7の設定画面を開きます。
ダッシュボードメニューのコンタクトフォーム一覧から、作成したフォームを選択してください。

* Contact Form 7 でお問い合わせフォームを作成する手順はこちら
Ref: Contact Form 7の基本設定|メールフォームの作り方と必要性

 

編集画面を開くと、プラグイン導入後はフォームタブに、【Honeypot】タブが追加されています。

495_3

 


3. 【Honeypot】タグを設置する

【Honeypot】タグをソースコードの中に埋め込みます。
場所はどこでもOKですが、ここでは「メッセージ本文」と「送信」の間に埋め込んでいきたいと思います。

【Honeypot】タグをクリックして、フォームタグを生成していきます。

495_5

必ず名前は変えていくようにしましょう。
デフォルトでは【honeypot-***】のような名前が入っており、このままこの名前を使用しても使えることは使えるのですが、最近のスパムロボットもだんだん賢くなっているので、honeypotを使っているんだな、と気付かれてしまいます。
ここは、ユニークネームに変更していくことをおすすめします。

名前を変更したら、「タグを挿入」を押下してください。

すると、ソースコードに、[honeypot uniquename] とコードが埋め込まれますね。
(uniquenameの部分はオリジナルな名前)

 

495_7

コードが埋め込まれたのを確認したら、最後に「保存」をクリックして完了です。

 

動作チェック

【Honeypot】タグをソースコードに設置しましたが、このコードはスパム対策用なので、サイトを確認しても何も表示はされていませんが、普通にフォームからメッセージを送信してみて、何も問題なくお問い合わせフォームが機能していればOKです。

もししっかりと確認したいという場合は、上級者向けの確認方法になりますが、設定したフォームのページのソースコードの中に、あなたが設定したユニークネームを見つければ、きちんと設定が完了していることになります。

Chromeの場合:
右クリック>要素の検証で
<input class=”wpcf7-form-control wpcf7-text” type=”text” name=”******” value=”” size=”40″ tabindex=”-1″>
(******はユニークネーム)
の部分を探す。

 

 

Akismetと連携させてスパムメールをブロック

さて、Contact Form 7 Honeypot の威力もさることながら、プラグインをたくさん増やしすぎるとサイトの動作が重くなるというジレンマに陥ることもあるかと思います。

そんな方のために、プラグインを使用しないでContact Form 7のスパムメールを回避する画期的な方法をご紹介します。

それはなんと、Wordpressサイトに必ずと言っていいほど使用されているコメントスパム回避のためのプラグインAkismetとContact Form 7を連携させて、Contact Form 7 のスパムメールも一緒にブロックしてくれる機能があるんです!

これは、プラグインの節約にもなってありがたいですよね。
もちろん、この方法とContact Form 7 Honeypotを同時に利用することでスパム回避の威力も高まりますので、プラグインに余裕がある場合は共存させてもいいでしょう。

 

Contact Form 7でのAkismet設定方法

デフォルト状態でのコンタクトフォームのソースコードはこのようになっています。

495_9

Akismetが設定できるのは、フォームタグのうち以下のタグになります。

  • 【テキスト】タグ
  • 【メールアドレス】タグ
  • 【URL】タグ

ここでは、名前の入力欄と、メールアドレスの入力欄にAkismetを設定していきたいと思いますので、

text* your-name と email* your-email

の部分を変更します。

 


1. 【テキスト】タグを設定する

Contact Form 7 の編集画面を開いたら、フォームタブより【テキスト】タグを選択し以下のように設定します。

495_10

設定箇所はこちらのとおり。

項目タイプ → 必須項目にチェックを入れる
名前 → 好きな名前を入力
Akismet → 送信者の名前の入力を要求する項目

最後に、「タグを挿入」をクリックして、ソースにコードを挿入します。

デフォルトのソースコードの「名前」 text* your-name の部分を作成されたakismet連携タグに書き換えればOKです。

text* your-name  ⇒  text* your-name akismet:author

 


2. 【メールアドレス】タグを設定する

同じように、次は【メールアドレス】タグを設定していきます。

495_11

 

「タグを挿入」をクリックして、ソースにコードを挿入ししたら、こちらもakismet連携タグに書き換えてください。

email* your-email  ⇒  email* your-email akismet:author_email

 


3. 確認&完了

ソースコードのビフォー・アフター。

変更前495_9

変更後495_13

以上で、Contact Form 7のスパムメールをAkismetでブロックする設定は完了です。

 

動作チェック

Akismetが動作しているかどうか確認してみましょう。
設定したお問い合わせフォームで、送信者の名前を「viagra-test-123」と入力し、送信してみることでテストすることができます。
「viagra-test-123」とは必ずAkismetにスパムとして認識されるテスト用の送信名です。

すると・・・・

495_16

オレンジ色の枠線で囲まれたエラーメッセージが出ます。
このオレンジ色はスパムブロックを意味しています。

ちゃんとAkismetが動作して、スパムを回避してくれましたね!