【Contact form 7】スパム判定のとき、コメント機能を使っていたら注意したいこと【WordPress】
WordPressのContact Form 7プラグインで作成したフォームからメッセージを送ろうとすると、オレンジ色の枠線で「メッセージの送信に失敗しました。後でまたお試しください。」と表示されてしまう事象があります。
これまでも一度記事にまとめていました。
今回も同様の事象が発生。
ただ上の記事には無かった原因で、コメント機能(ディスカッション設定)に関連して発生していました。
Flamingoプラグインで確認したら一発で原因解明できたのですが、個人的に盲点だったので書き残しておきたいと思います。
スパム判定のメッセージ
該当メッセージは以下のようなもの。
枠線の色は送信後のステータスによって異なり、キャプチャのオレンジ色はスパム判定となったことを表します。
今回前の記事と明らかに異なっていたのは、Google reCAPTCHAを導入していない内から発生していたという点でした。
原因はディスカッション設定の「コメント内で許可されないキーワード」
早速結論を述べると、スパム判定になってしまっていた理由は
WordPress管理画面のディスカッション設定にある「コメント内で許可されないキーワード」(以下禁止用語リスト)で設定していたワードに、フォームで送信したメッセージがひっかかっていたせいでした。
画面ではこの部分。
改めて調べると、公式にもちゃんと記載が。
禁止用語リスト (旧コメントブラックリスト)
コンタクトフォーム経由で送られてくるスパムや好ましくないメッセージに迷惑していて、CAPTCHA や Akismet を使っても完全にはブロックできない、そんなときには禁止用語リストが役に立ちます。
(中略)
WordPress の管理画面にログインしたら、設定 > ディスカッションのメニューに移動、その中頃にコメント内で許可されないキーワードという項目があります。単語か IP アドレスを一行に一個ずつ、テキストボックスに入力してください。作成したリストに含まれる単語を含む、または IP アドレスから送信されたメッセージは Contact Form 7 によりスパムとして扱われ、メールとして送信されません。
禁止用語リスト (旧コメントブラックリスト) | Contact Form 7 [日本語]
今回reCAPTCHAを一旦導入してからスパムに気づいたせいで、ついついreCAPTCHAを疑ってしまいました。
調べていく内にreCAPTCHAを外してもスパム判定になることが分かり、Flamingoを導入して原因が特定できた次第。
(Flamingoの見方は後述)
この禁止用語リストから該当ワードを削除したり、該当ワードを含まないようテストメッセージを送信したところ、無事送信成功するようになりました!
ちなみに、今回禁止用語リストにひっかかった経緯について。
普段WPコメント機能はあんまり使わないんですが、今回コメント機能に重きを置くサイトを作ろうと、有志の方のWordPress用のコメントブロックリスト(Comment Blocklist for WordPress)をまるっと禁止用語リストに登録してみていました。
そのワード数は5万強。
この中に「!」があり、たまたまテスト送信で「!」を入れたメッセージを(毎回)打ってたせいでスパム判定になった訳です。
コメントブロックリスト、日本語部分だけざっくり確認していただけだったのでスルーしてしまったんですが、「!」はコメントでもフォームでも禁止したい物ではなかったので気付けてよかったです。
スパムの原因はFlamingoプラグインで確認しよう
Contact Form 7のスパム判定関連だとreCAPTCHAの再設定で解消したという事例は多いかと思います。
この詳細については以下の記事をご覧ください。
また、今回原因を調べるにあたってFlamingoプラグインのスパムログがめちゃくちゃわかりやすかったので、今度から何かあったらこちらを確認すると早いなと思いました。
Contact Form 7と同じ方が制作しているFlamingoは、
- Contact Form 7から送信されたメッセージをWordPress上で確認できる
- スパム判定がでて送信失敗したメッセージもその送信内容と理由(スパムログ)を調べられる
というもの。
Flamingoを使ったスパムログの確認方法は以下の通りです。
1.[WP]Flamingoプラグインをインストール
2.[サイト上]Contact Form 7で作成したフォームからメッセージを送信し、スパム判定を再現
3.[WP]Flamingoメニューから”受信メッセージ”をクリック
4.[WP]スパムタブをクリックし、該当メッセージの表示リンクをクリック
5.[WP]該当メッセージの詳細が表示され、画面右側のステータスボックスにある「スパムログ:〜」を確認する
また、reCAPTCHAの閾値を変更する方法も公式で紹介されていました。(プラグインとは関係なし)
reCAPTCHAのスパム判定の閾値が問題と思われる場合、最終的にこういった手段を検討できるのはありがたいですね。備忘録としてメモ。
reCAPTCHA v3 に関する FAQ | Contact Form 7 [日本語]
まとめ
今回の学んだことのまとめです。
- ディスカッションの「コメント内で許可されないキーワード(禁止用語リスト)」に設定したワードは、Contact Form 7のスパム判定の際にも用いられる
- reCAPTCHA未導入でスパム判定がされた場合、 Akismet等のスパム対策プラグインや禁止用語リストの設定を確認する
- 大量のワードを禁止用語リストに設定する場合は、意図しないワードが含まれていないか、普段使いのワードがないか中身を確かめる
- スパム判定の原因確認はFlamingoプラグインを活用する
下記の記事もよければ併せてご覧ください!