コンタクトフォーム7の「メッセージの送信に失敗しました」というエラー原因は高速化プラグインでした

この記事は約2分で読めます。

メッセージの送信に失敗しました「メッセージの送信に失敗しました」というエラーがでて送ることができなくなったWordPressサイトの相談を受けました。利用しているプラグインはコンタクトフォーム7で、Googleのリキャプチャを使い不正アタックを抑止しています。昨年までは問題なく稼働していたようですが、いつのまにかフォームからの送信がエラーになり送ることができなくなったということです。
この原因は意外なところにありました。サイトの表示スピードを高速化するために入れたテキスト圧縮のプラグインが原因でした。

メッセージ送信エラーの原因を探ります

コンタクトフォーム7の作者のページには以下のような紹介がありました。

エラーの原因は2つ想定できました

「メッセージの送信に失敗しました」というエラーメッセージには原因が2つ想定されています。

ひとつはメールサーバにおいて実際に問題が発生していて、そのためメールが送信できなかったケースです。この場合、エラーメッセージは赤色のボーダーラインで囲まれています。サーバー管理者に問い合わせてください。

もうひとつは、フォーム送信にスパムの疑いがあると判断されたケースです。この場合、エラーメッセージはオレンジのボーダーラインで囲まれています。

エラーの色で判定可能

つまり、エラーメッセージの枠の色が赤ならサーバーが原因で、オレンジならスパム判定が原因ということです。

原因はスパム判定でした

今回の事例はオレンジ色の枠なのでスパム判定がエラーの原因でした。

Googleのリキャプチャを誤判定させたのはテキスト圧縮のプラグイン

そもそもなぜスパム判定になってしまうのかですが、この直接の原因はGoogleのリキャプチャを利用しているからです。

では、なぜGoogleのリキャプチャがスパムという誤判定をしてしまうのでしょうか?

この原因を作っていたのは、サイト表示を高速化するために利用開始したテキスト圧縮のプラグインでした。

テキスト圧縮をするプラグインは、JavaScriptの挙動をコントロールしたり遅延実行したりして、サイト表示を高速化するという働きをします。この動きがコンタクトフォームとリキャプチャの正しい挙動を妨害していたようです。

複数のプラグインを使っていると、複合的な問題があとあと発生することがありますので注意が必要です。