プラグイン 2023.07.26

Contact Form7 が送信できない原因と解決方法

この記事を書いた人

土井 純也

WordPressスペシャリスト・エンジニア/株式会社e2e 取締役 / CTO

1985年北海道生まれ。
200社以上の大手上場企業のWordPressサイトの制作、保守・セキュリティをサポートしている。

【 展開しているサービス一覧 】
■WordPress開発サービス「wp.make
■WordPress保守/運用サービス「wp.support
■WordPressハッキング/緊急復旧対応サービス「wp.rescue
■WordPressバージョンアップ代行サービス「wp.versionup

Contact Form 7でお問い合わせフォームを設置した際には、公開前に問題なく動作するかテストをおこないます。その際に「送信」ボタンを押してもメッセージが送信されない場合は、すみやかにエラー原因を特定して対応する必要があります。

エラーメッセージの種別などを参考に原因を絞り込み、考えられる対応を順番におこなっていきましょう。

なお、Contact Form 7の導入方法・基本設定や使い方については、以下のリンクを参考にしてください。
Contact Form 7のインストール方法・基本的な使い方はこちら

まずはエラーメッセージから状況を把握しよう

Contact Form 7では、送信エラーの内容に応じて枠の色が変わります。枠線の色に注目することで、問題の原因を特定する手がかりを得られます。メッセージの枠色には、赤(サーバーエラー)、オレンジ(スパム)、黄色(文法)、緑(正常)の4種類があります。

お問い合わせフォームが送信できない問題を枠色ごとにまとめると、以下のようになります。

赤(Mail failed ・サーバーエラー ・メール設定のチェック
オレンジ(Spam ・スパムの疑い ・reCAPTCHAの再設定
黄色(Validation error ・バリデーション(検証)エラー ・コードミスをチェック
緑(OK ・メール送信後の問題 ・フォーム外で原因を調査
その他(原因がわからない、対策したが効果がない) ・エラーメッセージを確認する
・プラグイン・テーマの一時停止
・ホスティング会社に問い合わせる

まずはエラーメッセージから状況を把握しよう

(公式サイトより引用)

【赤枠エラー】考えられる原因と対応

赤枠のエラーメッセージは、プログラムがメールを送信しようとして失敗した場合に表示されます。

原因:メールの設定ミスかサーバーエラー

このようなエラーが発生した場合、主に2つの原因が考えられます。「メール送信の設定が正しくない」または「サーバーに問題がある」です。

メール送信の設定では、メールアドレスが正しい形式で記述されていないとエラーが発生する可能性があります。

また、メール送信の設定で見落としがちなのは、送信元のメールアドレスです。送信元として設定されたメールアドレスのドメイン(@以降の部分)とWebサイトのドメインが一致していない場合にエラーが発生する可能性があります。
原因:メールの設定ミスかサーバーエラー

またサーバーダウンなどのトラブルが発生した場合にも赤枠のエラーが発生します。

対応方法:メール設定の確認・サーバーの状態確認

考えられる対応としては、「メール設定を確認する」「サーバーにトラブルが発生していないかチェックする」の2つです。

【手順1】WordPressの管理画面から[お問い合わせ]_[(該当コンタクトフォーム名)]を開きます。コンタクトフォーム画面から「メール」タブをクリックします。

【手順2】「送信先」と「送信元」に正しいメールアドレスが設定されているか確認します。安全な設定としては、「webmaster@test.com」または「サイト名」 のような形式で設定することが推奨されます。

※Contact Form 7でのメール設定については、以下の記事でも詳しく説明しています。
Contact Form 7の使い方まとめ|設定方法・カスタマイズ・おすすめプラグイン

【手順3】Webサイトと異なるドメインのメールアドレスを設定している場合や、同一ドメインでもサーバーのIPアドレスが異なる場合は、SMTP経由でメールを送れるプラグイン 「WP Mail SMTP」を導入します。

※「WP Mail SMTP」については、以下の記事でも説明しています。
Contact Form 7でメールが届かない問題の3大原因と対処法

サーバーにトラブルが発生していないかどうかは、サーバー管理者やホスティング企業に確認しましょう。

【オレンジ枠エラー】考えられる原因と対応

オレンジ枠のエラーメッセ―ジは、Contact Form 7に備わっているスパム検知機能が反応した場合に表示されます。

原因:スパム疑惑またはスパム関連設定

このようなエラーが発生した場合、主に2つの原因が考えられます。「(大量にメールを送信して)スパム対策モジュールにブロックされる」または「スパム対策モジュールに問題が発生している」です。

スパム対策ツールとは、スパムをブロックしてくれるツールのことで、「Akismet」や「Honeypot」などのプラグイン、それにGoogleが提供している「reCAPTHA」が有名です。これらのツールがメールをブロックするとオレンジ枠のエラーが発生します。

またスパム対策ツールのバージョンが古い場合、エラーが発生する可能性があります。

対応方法:スパム関連の設定を見直そう

考えられる対応としては、現在使用しているスパム対策ツールの再設定があります。たとえばreCAPTCHAのバージョンが古い場合(最新版はv3)、再設定し直すことで問題が解消する可能性があります。

「reCAPTCHA」の設定方法については、以下で詳しく説明しています。
【図解】Contact Form 7のreCAPTCHAの導入・設定方法(スパム対策)

【黄色枠エラー】考えられる原因と対応

黄色枠のエラーメッセージは、フォーム作成で設定ミスなどの問題があり正しく動作しない
場合に表示されます。

原因:バリデーションエラーの可能性

このようなエラーが発生した場合、「タグの入力ミス」が原因である可能性が高いです。タグの入力ミスや文法エラーにより正常にプログラムが実行できずにエラーが発生します。

対応方法:思わぬミスをしていないか改めてチェック

対応方法としては、コードが正しく記載されているか、あらためてチェックするといった対応を行います。

思わぬところで入力ミスやコピペミスをしていたり、半角スペースのつもりが全角スペースになっているなどの可能性があります。

先入観を捨てて、丁寧にコードを見直してみましょう。

【送信完了(緑枠)なのにメール不達】考えられる原因と対応

緑枠の完了メッセージは、正しくメッセージが送信された場合に表示されます。

原因:メール送信後に問題が発生している可能性

この場合は他のエラーとは異なりフォーム内容の送信自体はできています。そのためメールが届かない場合は、「コンタクトフォームとは別のところで問題が発生している」可能性を考えてみてください。

例えばメールサーバー側でメールを拒否しているなどの可能性があります。

対応方法:メールが届かない原因を調べよう

フォーム側からは送信できているのに、実際にはメールが届かないという場合、いくつかの原因が考えられます。以下の記事などを参考に対応を試みてください。
Contact Form 7でメールが届かない問題の3大原因と対処法

その他:原因がわからない、上記対策をしてみたが効果がない場合

エラーメッセージからはエラー原因の特定ができなかった場合は、開発者向けのツールを使用して原因を探す方法や、他サイトの事例から原因を推測する方法があります。

対応方法:原因を切り分けよう

フォーム送信ができないよくある原因のひとつに、複数のプラグインやテーマ間で衝突して問題が起こる問題があります。状況を把握するため、Contact Form 7以外のプラグインをすべて停止し、テーマをデフォルトテーマに戻してみることをおすすめします。

【手順1】WordPressの管理画面から、[プラグイン]_[インストール済みプラグイン]を選択します。現在インストールされているプラグインの一覧が表示されている状態になります。

有効化されているプラグインは、[無効化]という文字が表示されているため、[無効化]と表示されている部分をクリックして無効化します(無効化すると[有効化]という表示に変わります)。
対応方法:原因を切り分けよう

【手順2】有効化されているプラグインをすべて無効化した状態にして、Webサイトを再読み込みします。フォーム送信を試みます。

【手順3】フォームが正常に送信できた場合、問題のあるプラグインを特定するため、ひとつずつプラグインを有効化していきます。プラグインを有効化するたびにWebサイトの再読み込みとフォーム再送信を繰り返し、エラーが再発するかどうかを確認します。エラーが再発した場合は、直前に有効化したプラグインが原因です。

原因が特定できたら、別のプラグインに切り替えるなどの対応を検討してください。

またフォームが送信中のまま終了しない場合は、Chromeのデベロッパーツールでメッセージを確認する方法もあります。デベロッパーツールとは、ブラウザのGoogle Chromeに搭載されている開発者向けのデバッグツールです。Webサイトを表示した状態で、Windowsでは「Ctrl+Shift+I」、Macでは「Cmd+Opt+I」で起動します。
Chromeのデベロッパーツールでメッセージを確認する

「Console」タブでエラーメッセージが表示されていれば、その情報を参考にできます。

たとえば「The response is not a valid JSON response.(応答は有効な JSON 応答ではありません)」というエラーは、サーバーが(JSON形式で)応答できなかったことを示しています。このように、エラー内容がサーバー側の問題と考えられる内容だった場合は、ホスティング企業側で送信制限をおこなっている可能性もあります。メール通知が届いていないか確認したり、問題が発生していないか問い合わせしてみるとよいでしょう。

過去にあった事例

ここでは、実際に発生した事例を紹介します。

【ケース①】formが重複してエラーになっていた!

意外に起こりやすいのが不要なタグが入ってしまってエラーになるケースです。

A社のWebサイトでは、フォーム作成当初からバリデーションエラー(黄色枠エラー)でフォームが送信できない状態でした。

担当者が何回見直してもタグに問題は見つからず専門家に相談したところ、<form>タグが重複していることを指摘されました。<form>タグはContact Form 7側で自動追加されることを知らずに、<form>タグに設定していたCSSを適用させようとして担当者があえてタグを追加していたのです。

不要な<form>タグを削除したところ、エラーは消えて正常に送信できるようになりました。このように自動生成されるタグに気付かず不要なタグを追加してしまうケースのほか、コピペでタグを貼り付けたため不要なタグが入ってしまうケースも見られます。

不要なタグがエラー原因になるケースは、原因に気づきにくいものです。バリデーションエラーが出ているにもかかわらず問題が見当たらない場合、一度コードを確認してみることをおすすめします。

【ケース②】ホスティング企業がフォームを制限していた!!

次は、ホスティング企業側でフォームを制限していたケースです。

B社のWebサイトでは数年前から商品注文フォームを運用していました。ある日、定期的に商品を購入してくれるお得意様から電話がかかってきて、注文フォームの送信ボタンを押すと、送信中のまま止まってしまい送信できないことが発覚しました。

デバッグツールで確認したところサーバーエラーが疑われました。そのためホスティング企業に問い合わせたところ、一時期お問い合わせフォームを設置しているページにスパムのアクセスが急増したため送信制限をかけているとのことでした。B社では、ホスティング企業からのアドバイスで適切なスパム対策をおこなったため早期に制限を解除してもらえました。

B社では運よくお得意様から教えてもらったため早く問題に気づけましたが、このようにフォームの運用途中でエラーが発生した場合は、長期間フォームの不具合に長期間気づかず放置してしまうケースもあります。フォームからのメールが届かないなどの違和感を感じた場合には、念のためフォームに問題がないか確認してみるとよいでしょう。

まとめ

Contact Form 7のフォームが送信できない場合、エラーメッセージの枠色は原因特定の手がかりとなります。どのような理由でエラーが発生するのかに注目して、適切な対応を試みてください。

ただし、一部の対応策にはphpファイルの編集など、重要なファイルを変更する作業が含まれます。誤って編集するとフォーム以上の大きな問題が発生するリスクがあるため、作業前にファイルのバックアップは必ず取得しておくことをおすすめします。

もし作業に不安を感じる場合や、時間をかけずに問題を解決したい場合には、専門家に相談するのが効率的かつ確実な方法です。

WordPressサイトのトラブル復旧なら「wp.rescue」にお任せ!

WordPressサイトで急なトラブルにあったら、「wp.rescue」にご相談ください!

  • 急にサイトに何も表示されなくなった…
  • ログインできなくなった…
  • 覚えのない不審なページがインデックスされている…
  • 不審なユーザーが追加されている…
  • リンクが不審なサイトに飛ぶように書き換えられている…
  • バージョンアップしたらサイトが崩れてしまった…

「wp.rescue」は、WordPressのプロフェッショナル集団によるWordPressトラブル・ハッキング復旧サービスです。
WordPressサイト運営していて、急なトラブルに遭うことは珍しくありません。

原因や解決法方がわかる場合は問題ありませんが、原因がわからなかったり、ハッキングの可能性がある場合はプロに相談するのが一番です。
wp.rescueでは、様々なサイトのトラブルやハッキング被害を解決してきた経験・ノウハウがあるため、速やかなサイトの復旧が可能です。

トラブル復旧はスピードも重要。wp.rescueなら最短即日での復旧も可能ですので、お困りの場合はまずはお問い合わせフォームから無料相談をしてください。

>> wp.rescueに無料相談する

「あれ? 何かおかしい…」と思ったら、WordPressハッキング・緊急対応サービス『wp.rescue』

wp.rescue

特に心当たりもないのに、
・WordPressにログインできない…
・検索結果の表示がおかしい…
・勝手にリダイレクトされてしまう…


など、「何か変だ」と感じたら、
実はWordPressがハッキングされている可能性もあります。

被害が拡大・深刻化する前に、『wp.rescue』にご相談ください!

WordPressのプロフェッショナルがあなたのサイトの問題を迅速解決!