Contact form 7がGoogle reCaptcha v3しか使えなくなってしばらくたちます。
特に問題なく使えている人が多い反面、相変わらず誤判定でメールが送れないケースで問題を抱えている人もいます。
ビジネスでフォームを使っている場合は、メール送信できない問題はそのままビジネスチャンス喪失になりますので、絶対に避けなければなりません。
Contact form 7でメールが送れない時の解析手順
Contact form 7でメール送信できない問題の解析には、flamingoは必須です。
- flamingoを導入する
- flamingoのスパム、ゴミ箱に未達メールが無いか確認する
- スパム判定された時のスパムスコアを確認する
- スパムスコアが閾値よりも低い場合で0ではないなら、reCaptchaの誤判定と考える
スパムスコアが”0″ではなく、特定のメールだけ0.1とかであればreCaptchaの誤判定の可能性が高くなりますので、他の手段を検討した方がよいでしょう。
Google reCaptcha v2を導入する
Google reCaptcha V2であれば、送信前にチェックボックスが出るので、誤判定することはありません。
ところが、Contact form 7ではプラグインのGoogle reCaptcha v2のサポートは停止されました。
ReCaptcha v2 for Contact Form 7プラグインを追加することでGoogle reCaptcha v2対応させることができます。
導入は簡単です。
- reCaptchaのキーはv2用を取り直して、設定し直します。
- Contact form 7のフォームに以下のショートコードを入力すれば、使用できます。
[recaptcha]
ReCaptcha v2 for Contact Form 7は高速化プラグインとの相性問題あり
ReCaptcha v2 for Contact Form 7 はjavascriptを使って動作していますが、javasctriptの読み込みを遅延させるプラグインと相性が悪いようです。
読み込み順序が変わると上手く動かない問題が報告されています。
WP RocketやAutoptimizeなどでプラグインの以下のjsファイルを最適化対象から除外する必要があります。
wpcf7-recaptcha/assets/js/wpcf7-recaptcha-controls.js
Google reCaptcha v2はv3と同じようにスパムを防げるのか?
Google reCaptcha v2にして1日も経たないうちにロシア語のスパムメールが大量に届くようになりました。
Google reCaptcha v3と比べるとv2は明らかにスパム防御能力が低いです。
まとめ
Contact form 7でGoogle reCaptcha v3でメールが届かない問題があるのであれば、プラグインを導入してGoogle reCaptcha v2を導入することで、スパム誤判定は無くなります。
しかし、スパム防御能力は下がるので、スパムメールが届くようになります。
こちらはトレードオフなので、誤判定されてもスパムメールを減らしたいか、スパムメールを減らしたいのか、どちらが良いか考えて対応することになります。