WordPress + Contact Form 7 で機械によるスパムメール・人間による営業メールをブロックする

本記事は、Wordpress + Contact Form 7 を使っていてスパムメールや営業メールが届いて困っている方向けの記事です。

HPのお問い合わせフォームから送信されるスパムを大きく分けると、

・Bot(プログラム)によって自動送信されるスパムメール
・人間がフォームから送信する営業メール

の2種類があります。

性質が異なるため、それぞれ別の方法で対策します。

1. reCAPTCHAでBotによるスパムを防ぐ

reCAPTCHAを導入すると、Botによる大量のフォーム送信を減らすことができます。Contact Form 7はGoogleのreCAPTCHAと連携できます。

WordPress管理画面から、「お問い合わせ → インテグレーション」を開き、「reCAPTCHA」の設定を行います。

Contact Form 7の公式ドキュメントを見ながらreCAPTCHAセットアップを行ってください。

Contact Form 7で利用されるreCAPTCHA v3は、「私はロボットではありません」といったチェック操作を利用者に求めず、バックグラウンドでアクセスを判定します。

ただし、reCAPTCHAは主に機械的なスパムへの対策です。人間が直接、
「SEO対策をご提案します」「営業支援サービスをご紹介します」といった内容を入力して送信する営業メールまでは防げません。それをブロックするために次の項目の手順を実施します。

2. 「コメント内で許可されないキーワード」で営業メールを防ぐ

人間による営業メールには一定のルールがあるので、WordPress標準の「コメント内で許可されないキーワード」を利用するとブロックできます。

WordPress管理画面から、「設定 → ディスカッション → コメント内で許可されないキーワード」を開き、ブロックしたい言葉を1行に1つずつ登録します。

初めての連絡で日程調整のURLを送ってくるのは100%営業なので、日程調整サービスのURLをブロックするのがおすすめです。

それ以外は、営業メールを受信するたびに、ブロックするキーワードを登録していけば大丈夫です。

追加のプラグインを導入しなくても利用できるため、手軽な営業メール対策になります。

注意したいのが誤判定です。

ここで登録した言葉は「部分一致」として判定されます。例えば、「営業」と登録した場合、「営業代行」の他、「営業部の佐藤です。」といった挨拶文もスパム判定されることになります。

実際に届いたメールを確認しながら、ブロックしたい表現を少しずつ追加していくとよいでしょう。

まとめ

Contact Form 7の迷惑メール対策では、

Botによるスパム
→ reCAPTCHA

人間による営業メール
→ コメント内で許可されないキーワード

というように、役割を分けて対策するのがおすすめです。

どちらも比較的簡単に設定できるため、お問い合わせフォームへの不要なメールに困っている場合は試してみてください。

補足

現在のContact Form 7では、reCAPTCHAに加えてCloudflare Turnstileも標準で利用できます。

Contact Form 7公式では現在Turnstileの利用を推奨しているため、これから新しくBot対策を導入する場合は、Turnstileから検討してみるとよいでしょう。

参考: Cloudflare Turnstile インテグレーション