▶パソコンの寿命は?パソコン買い替えのマメ知識とおすすめ処分方法

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

About WordPress

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

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

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

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

※本記事の方法を導入した場合、英語の他、中国語、ロシア語、アラビア語など日本語以外の言語はすべてシャットアウトすることができます。

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

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

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

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

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

ひらがなの有無で送信の不可を判別しています。

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

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

ここがポイント!

コードを貼り付ける際には、できるだけ「子テーマ」の function.php に貼り付けるようにしてください。親テーマはいじらないのが基本です(子テーマが無い場合はしかたありません)。

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

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

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

ここがポイント!

例画像には「Japanese Only」とわかりやすくしていますが、バカ正直に「日本語以外はつかえないよ」という記載にすると、小賢しいスパマーは日本語を混ぜてきやがりますので、注意書きはただ送信エラーの旨だけを表記する方が良いと思います。

あとがき

WordPress のお問い合わせから送られてくる全文英語のスパムメールにお悩みの方はぜひお試しください。

本記事の方法なら画像認証などでユーザビリティを下げなくても、英語スパムメールは完全シャットアウトできますから効果てきめんですよっ!

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

ついでに迷惑営業メールも対策しませんか?

WordPress に標準搭載されている機能をうまくつかうことで、「Contact Form7 に特定のキーワードが含まれていたら、送信ボタン押した時、警告文を出して送れなくする」ことができます。

外国語の迷惑メールを駆除したついでに、迷惑営業メールも駆除してみませんか? 詳しい手順は以下の別記事にて紹介していますので、ぜひお試しください。