本記事は、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から検討してみるとよいでしょう。
