WordPress、テーマは「Cocoon」でサイトを作成し、作成途中の段階で、「CloudSecure WP Security」と「Password Protected」の2つのプラグインを有効化している状態で、「ContactForm7」を使用したアンケートフォームの送信チェックを実施したところ、
送信後、「メッセージの送信に失敗しました。後でまたお試しください。」というエラー・メッセージが表示される不具合が発生した。
その解決法について紹介します。
推定原因
Contact Form 7でそのメッセージが出る場合、システム的なブロックではなく、「フォームの送信処理自体は動いたけれど、WordPress(サーバー)がメールを送る段階で失敗した」、あるいは「セキュリティプラグインが『スパム(不正な自動送信)』と判定して落とした」のどちらかです。
ここまでの設定(Cocoonの高速化OFF、CloudSecure無効化、パスワード保護無効化)をすべて行ってもダメだった場合、原因は次の2つに絞られます。(上記赤下線部もトライしても駄目でした)
原因1:Contact Form 7の「reCAPTCHA(スパム対策)」のバグ
もし、Contact Form 7の機能として Google reCAPTCHA(画面右下に出てくる緑のマーク) を連携させていませんか?
- なぜ起きるのか: サイト全体にパスワード保護(passwordprotect)がかかっていると、Googleのシステムが「このサイトは本当に本物のサイトか?」を正しく判定できず、すべての送信を「スパム(不正アクセス)」と誤判定して一律ブロックしてしまう致命的な仕様(バグ)があります。
- 対策:
- WordPress管理画面 > 「お問い合わせ」 > 「インテグレーション」 を開きます。
- reCAPTCHAの項目にある 「キーを削除」 をクリックして、一時的に連携を完全に解除します。
- その状態で、シークレットウィンドウから再度送信テストを行ってみてください。
原因2:サーバーの「メール送信機能」自体の制限
WordPressが設置されているレンタルサーバー(エックスサーバー、ConoHa WING、ロリポップなど)のセキュリティ設定が影響しているケースです。
- なぜ起きるのか: パスワード保護やセキュリティプラグインをいくらOFFにしても、サーバー自体が「不審なメール送信」としてブロックしていると、WordPressはメールを送れずにエラーを出します。特に「フォームに入力された送信元のメールアドレス」と「サーバーのドメイン」が異なると、サーバーのなりすまし防止機能(SPF等)に引っかかることがあります。
- 対策(CF7の設定変更):
- 管理画面 > 「お問い合わせ」 > 該当のフォームの編集画面を開きます。
- 「メール」タブ を開きます。
- 「送信元」 の項目を確認します。ここが
[your-email](回答者が入力したアドレス)になっていたら、自分のサイトのドメインのアドレス(例:info@あなたのサイトドメイン.com)に書き換えて保存してください。 - ※回答者のアドレスは、その下の「追加ヘッダー」欄に
Reply-To: [your-email]と入れておけば、返信時に困りません。
今回の不具合は、原因1:Contact Form 7の「reCAPTCHA(スパム対策)」のバグでした。連係を解除したところ、不具合は解消しました。

ところが、ContactForm7のアンケートフォームで、「通知メールの脆弱性エラー・メッセージ」が出てしまった。この不具合との関連性は?

reCAPTCHA連係を解除して送信可能になった。今後、password保護を解除予定であるが、その場合、このreCAPTCHA連係の設定はどうすればよいのか?

良いところに気がつきましたね!
サイトpasswordを解除して一般公開する時に、「eCAPTCHA を連携」を再設定すれば、エラー・メッセージは解消されます。
ではお教えしましょう。
パスワード保護を解除した後の reCAPTCHA 設定について
パスワード保護を解除(サイトを一般公開)した後は、再び reCAPTCHA を連携させて全く問題ありません。正常に動作するようになります。
今回の不具合は、「パスワード保護の壁のせいで、Googleのロボットがサイトを正しく巡回・検証できなかったこと」が原因です。サイト全体が一般公開されれば、Googleのシステムと正常に通信できるようになるため、誤判定によるブロックは起きなくなります。
今後の再設定に向けて、注意点と具体的な手順を整理しました。
サイト一般公開後の reCAPTCHA 再設定手順
パスワード保護を解除した後は、以下の手順でスパム対策を復活させてください。
- サイトのパスワード保護を完全に解除する
- 前提条件:プラグイン(passwordprotect)を無効化するなどして、誰でもURLだけでアクセスできる状態にします。
- Google reCAPTCHAの管理画面を確認する
- キーの確認:「Google reCAPTCHA v3」の管理画面(コンソール)にログインし、現在登録されているドメイン名が正しいか念のため確認します(以前と同じドメインであれば、既存の「サイトキー」と「シークレットキー」をそのまま再利用して大丈夫です)。
- Contact Form 7にキーを再登録する
- 復活設定:WordPress管理画面 >「お問い合わせ」>「インテグレーション」を開き、reCAPTCHAの欄に再度「サイトキー」と「シークレットキー」を入力して保存します。
- 一般公開状態で送信テストを行う
- 最終確認:ブラウザのシークレットウィンドウを開き、パスワード入力なしでフォームが表示されること、そして今度はエラーにならずに正しく送信できることを確認します。
今後のためのワンポイント・アドバイス
もし再連携したときにまたエラーが出たら?
万が一、パスワード保護を解除してキーを再登録したにもかかわらず同じエラーが出る場合は、Google側が発行しているキーのバージョンが 「v3(見えないスパム判定)」 ではなく 「v2(私はロボットではありません にチェックを入れるタイプ)」 になっている可能性があります。Contact Form 7の最新版は原則「v3」にしか対応していないため、その場合はGoogle reCAPTCHAの画面で「v3」のキーを新しく作り直して登録してみてください。


コメント