最終更新日:
reCAPTCHA入れたのに迷惑メールがくる問題を超シンプルに解決した話
こんにちは。五平餅くんです。
先日このサイトのフォームから迷惑メールが止まらない事態が発生しました。
一日に何十通もわけのわからないメールが届くのです。
でもこのサイトのフォームはreCAPTCHAを実装しています。
「えっ!?reCAPTCHA入れたのに迷惑メール?」
reCAPTCHAを入れれば迷惑メールは来なくなると思っていたので僕はどうしていいかわからず。
あれこれ試してみましたが、全然止まりません。
お問い合わせ内容を必須にしたり、reCAPTCHAのbot判定スコアを高くしたりなど、いろんなことを試しました。
しかし、全然止まらないのです。
「どうすればいいんだ… !」
調べて調べて、やっと辿り着いた解決策は驚くほどシンプルでした。
フォームのURLを変えると迷惑メールが止まった
いきなり結論ですが、フォームのURLを変えました。
おそらくほとんどの方は、「https://ドメイン/contact/」となっていると思います。
僕のブログのフォームも同じでした。
大体の方は、フォームといえば「contact」という名前のURLを付けたくなると思います。
でも、悪質なスパムメールを送ってくるボットは、山ほどあるWebサイトには大体「/contact/」にメールフォームがあることを知っています。
メールフォームを見つけてしまえば管理者にメールを送ることができるので、効率的にフォームを見つけるために「/contact/」のURLで自動的に検知しようとするのだそう。
なので僕は、フォームのURLを日本語ローマ字で「/otoiawase/」(お問い合わせ)に変更しました。
そして、これでピッタリ止まりました!
ちょっとURLがダサいのが難点ですが、「otoiawase」という文字はフォーム検知プログラムの対象にないらしく僕のフォームも見つけられなくなったようです。
URLを変更して以来迷惑メールが来ることは一切なくなりました。よかった!
めでたしめでたし。
URLを変更したのでリンクも変更
と、ここで終わってはいけません。
URLを変更したことで、サイト内のフォームページへのリンクが切れてしまいました。
なので、サイト内のすべてのフォームへのリンクを「/contact/」→「/otoiawase/」に変更しないといけません。
まずはテーマファイルから手動で「contact」のリンクを探します。
※↑の全体ファイル検索方法は、エディタ「VS Code」の場合です。
「/contact/」というリンクが使われているファイルがずらっと出てくるので、一つ一つ「/otoiawase/」に修正します。
さらに、ブログ記事の中にも「/contact/」のリンクがないかを探します。
これにはプラグイン「Search Regex」を使用します。
Search Regexをインストールし、管理画面右のサイドバー「ツール」から「Search Regex」をクリック(①)します。
そして、「検索」部分に「contact」を入力し(②)、「検索」をクリックします(③)。
これで「/contact/」というリンクが使われているページがずらっと出てくるので、すべてのリンクを「/contact/」→「/otoiawase/」に変更しました。
これで万事解決!
あれから迷惑メールが来ることもありません。
これで本当にめでたしめでたし!
※ちなみに「/contact/」というリンクが多いからといって、「https://ドメイン/contact/」から「https://ドメイン/otoiawase/」にリダイレクト(/contact/のURLにアクセスしたら自動で「/otoiawase/」に切り替え)させていけません。ボットにフォームの居場所がばれてしまいます。
面倒ですが、手動で変更しないといけません。
当サイトのフォームとreCAPTCHAについて
フォームは「MW WP Form」を使用しております。
また、reCAPTCHAは「reCAPTCHA for MW WP Form」で実装しています。
reCAPTCHAとは、Webフォームをボット攻撃(自動的に任意の文字や文章を送るプログラム)から防ぐための機能です。
ちなみに、なぜreCAPTCHAを実装しているのに迷惑メールが来たのかはわかりません。
でももしreCAPTCHAを実装しているのに迷惑メールが止まらないようでしたら、URL変更を検討してみてください!
最後まで読んでいただきありがとうございました!