こんにちは、Dr.WordPressです。
Contact Form 7でフォームを入力して送信ボタンを押したあと、
「メッセージの送信に失敗しました。後でまたお試しください。」
と表示されることがあります。
例えば、
「フォームには入力できる」
「送信ボタンも押せる」
「でも最後の送信だけ失敗する」
といったケースです。
入力内容そのものに問題があるとは限らず、Contact Form 7の設定やメール送信、プラグイン、サーバー側など複数の原因が考えられます。
今回は、Contact Form 7で「メッセージの送信に失敗しました」と表示されるときに確認したい7つの原因をご紹介します。
① Contact Form 7のメール設定に問題がある
まず確認したいのが、Contact Form 7の「メール」設定です。
フォーム自体は正常に表示されていても、
・送信先メールアドレス
・送信元メールアドレス
・メールタグ
などの設定に問題があると、送信時にエラーになる場合があります。
特にフォーム項目をあとから変更した場合は、フォーム側とメール側でタグの名前が合っていないことがあります。
「フォームを編集してから送れなくなった」
という場合は、メール設定も一緒に確認してみましょう。
② 送信元メールアドレスに問題がある
Contact Form 7では、送信元として設定しているメールアドレスも重要です。
例えば、
Webサイトが
example.com
なのに、送信元をGmailなど別ドメインのアドレスにしている場合、サーバーやメールサービスによっては正常に送信できないことがあります。
基本的には、
「サイトと同じドメインのメールアドレス」
を送信元に設定する方法が一般的です。
「設定は合っているように見えるのに送れない」
という場合は、送信元のドメインも確認してみましょう。
③ サーバーのメール送信機能に問題がある
Contact Form 7が正常でも、レンタルサーバー側からメールを送信できていないケースがあります。
WordPressでは、サーバーのメール送信機能を利用してメールを送ることがあります。
そのため、
・サーバー側でメール送信が制限されている
・一時的にメール送信機能に問題がある
・大量送信などによって制限されている
といった場合、Contact Form 7側では送信エラーとして表示されることがあります。
特に、
「急にフォームが送れなくなった」
「設定を変えていないのに失敗する」
という場合は、サーバー側も確認したいポイントです。
④ プラグインが競合している
Contact Form 7以外のプラグインが、フォームの送信処理へ影響することもあります。
特に影響しやすいのが、
・セキュリティプラグイン
・キャッシュプラグイン
・JavaScript最適化プラグイン
・スパム対策プラグイン
などです。
例えば、プラグインの更新後から突然送信できなくなった場合は、競合している可能性があります。
「最近プラグインを追加した」
「自動更新されたあとからおかしい」
という場合は、直前の変更を確認してみましょう。
ただし、本番サイトで原因が分からないまま複数のプラグインを一気に停止するのは避けた方が安全です。
⑤ JavaScriptエラーが発生している
Contact Form 7では、フォーム送信時にJavaScriptが関係する処理があります。
ページ内でJavaScriptエラーが発生していると、
・送信処理が止まる
・読み込みが終わらない
・送信結果が正しく表示されない
といった症状につながる場合があります。
Contact Form 7とは関係のないスライダーやアニメーション、テーマのJavaScriptが原因になることもあります。
「ページをカスタマイズしたあとから送れない」
という場合は、JavaScript側も確認したいところです。
⑥ REST APIやセキュリティ設定に問題がある
Contact Form 7では、WordPressのREST APIを利用した通信が行われる場合があります。
この通信が、
・WAF
・セキュリティプラグイン
・アクセス制限
・サーバー側のセキュリティ機能
などによってブロックされると、正常に送信できないことがあります。
例えば、
「フォームは表示される」
「ボタンも押せる」
「でも送信時だけエラーになる」
という場合です。
特定の操作だけブロックされている場合は、Contact Form 7の設定だけを見ても原因が分からないことがあります。
⑦ SMTPやメール認証に問題がある
WordPress標準のメール送信方法では、サーバー環境によってメール送信が安定しない場合があります。
そのため、SMTPを使ってメールを送信しているサイトもあります。
WP Mail SMTPなどを使用している場合は、
・SMTPサーバー
・ユーザー名
・パスワード
・ポート番号
・認証方法
などに問題がないか確認してみましょう。
また、
・SPF
・DKIM
・DMARC
などのメール認証設定が関係する場合もあります。
「以前は送れていたのに、メールサーバーを変更してから送れなくなった」
という場合は、SMTPやDNS設定も確認したいポイントです。
「送信に失敗しました」と表示されるタイミングを確認しよう
原因を探すときは、
「どのタイミングで失敗するのか」
を確認すると切り分けやすくなります。
例えば、
「送信ボタンを押した瞬間にエラーになる」
「しばらく読み込み中になってから失敗する」
「送信完了と表示されるのにメールだけ届かない」
では、疑うポイントが変わります。
送信完了と表示されるのにメールが届かない場合は、フォーム送信そのものよりもメール設定やSMTP、迷惑メール側を確認した方がいいケースがあります。
反対に、送信処理そのものが失敗する場合は、JavaScriptやREST API、セキュリティ設定なども確認したいところです。
別のメールアドレスでも試してみよう
可能であれば、送信先やテスト用アドレスを変えて確認するのも一つの方法です。
例えば、
「会社メールには届かないけれどGmailには届く」
という場合は、Contact Form 7だけでなく受信側のメールサーバーが影響している可能性があります。
逆に、どのメールアドレスでも同じように失敗する場合は、WordPressやサーバー側の問題を疑いやすくなります。
Contact Form 7で送信に失敗するときの確認順序
STEP 1
Contact Form 7のメール設定を確認する
STEP 2
送信元と送信先のメールアドレスを確認する
STEP 3
別のメールアドレスでもテストする
STEP 4
直前に追加・更新したプラグインを確認する
STEP 5
JavaScriptエラーが出ていないか確認する
STEP 6
WAFやREST APIなどの通信を確認する
STEP 7
SMTPやサーバーのメール送信設定を確認する
原因が分からない状態で設定を大きく変更するより、
「フォーム設定なのか」「通信なのか」「メール送信なのか」
を順番に切り分けていくことが大切です。
まとめ
Contact Form 7で「メッセージの送信に失敗しました」と表示される場合は、
① Contact Form 7のメール設定
② 送信元メールアドレス
③ サーバーのメール送信機能
④ プラグインの競合
⑤ JavaScriptエラー
⑥ REST APIやセキュリティ設定
⑦ SMTPやメール認証
などを確認してみましょう。
特に、
「設定を変えていないのに突然送れなくなった」
という場合は、プラグインの自動更新やサーバー側の変更なども確認してみるのがおすすめです。
Contact Form 7が直らない場合はご相談ください
Contact Form 7は、フォーム本体だけでなく、メール設定・迷惑メール対策・WordPress・サーバー側などが原因になっている場合があります。
設定を確認しても原因が分からない場合は、現在の症状から問題箇所を切り分けます。
1件1,000円で、原因の特定から対処方法までご案内します。
「送信できない」「メールが届かない」「送信ボタンが反応しない」など、症状だけ分かっている状態でも大丈夫です。
購入前のメッセージ相談もOKです。