Contact Form 7 海外からのスパム対策!お問い合わせ本文が全て英語の場合は送信できないようにする

About WordPress

長いこと WordPress ブログを運営していると必ずといってよいほど発生する「お問い合わせフォームからの英語スパムメール」。海外からバシバシ送られてくるんですよね。

かといって画像認証を導入すればユーザビリティ的にちょっとよろしくないとも考えてしまいます。なんとか日本語メールだけを受信する方法はないもんか・・・

そういうの、あるんですっ!

今回は「お問い合わせフォームから送信される英語メールだけをピンポイントでシャットアウトする方法」を紹介します。

Contact Form 7 お問い合わせフォーム「海外スパム対策」

以下のコードをコピーして fanction.php に貼り付けてください。

たったこれだけで、お問い合わせ本文(textarea)が全文英語だった場合はエラーになり送信できないようになります。

これがどういう機能なのかを簡単に解説すると・・・

お問い合わせ本文は <textarea></textarea> というタグが使われています。その textarea タグの内容に「ひらがな」が無い場合は、エラーを吐き出して、送信することができないようにしてくれる…という PHP コードです。ひらがなで送信の不可を判別します。

したがって、海外スパムは全文英語ですから、どう頑張ってもエラーになり送信することができないわけなんです(便宜上英語としていますが、日本語以外の外国語全部をシャットアウトできます)。

「エラー / この内容は送信できません。」の部分だけ任意の文言に変更できます

実際に WordPress のお問い合わせフォームでの使用例

Contact Form 7 海外からのスパム対策!お問い合わせ本文が全て英語の場合は送信できないようにする

お問い合わせ本文に全文英語を入れて送信ボタンを押してみると、上の画像のように自動的にエラーを吐き出してくれます。何度送信ボタンを押しても同じです。

あとがき

WordPress のお問い合わせから送られてくる全文英語のスパムメールにお悩みの方はぜひお試しください。本記事の方法なら画像認証などでユーザビリティを下げなくても、英語スパムメールは完全シャットアウトできますから効果てきめんですよっ!

というわけで、今回は「Contact Form 7 を用いたお問い合わせフォームから送信される英語メールだけをピンポイントでシャットアウトする方法」を紹介しました。