「お問い合わせフォームから送信したのにメールが届かない」「送信ボタンを押してもエラーになる」——WordPressを使っていると、こうしたフォームトラブルは非常によく起きます。本記事では、Contact Form 7をはじめとするWordPressフォームが送れない主な原因5つと、それぞれの具体的な解決方法をまとめました。
送れない原因5つ
原因は大きく5つに分類できます。上から順に確認していくと効率よく解決できます。
フォームの内容がスパムと判定され、サーバー側でブロックされるケースです。Contact Form 7にreCAPTCHAを設定している場合、設定ミスや古いAPIキーが原因で正常な送信もブロックされることがあります。まずはContact Form 7の設定画面でreCAPTCHAのサイトキー・シークレットキーが正しく入力されているか確認してください。
WordPressは標準でPHPのmail()関数を使ってメールを送信しますが、多くのレンタルサーバーではセキュリティ上の理由からmail()を制限しています。特に共有サーバー(ロリポップ・さくら・エックスサーバーなど)でよく発生します。解決策は「WP Mail SMTP」プラグインを導入し、GmailやSendGridなどのSMTPサーバー経由で送信する設定に切り替えることです。
Contact Form 7の「メール」タブにある「宛先」が間違っていると、送信処理は成功しているのにメールが届かない状態になります。よくあるミスは、全角スペースの混入・ドメインのタイプミス・古いメールアドレスのままになっているケースです。設定画面で宛先アドレスを今一度コピー&ペーストで確認しましょう。
セキュリティ系プラグイン(Wordfence・SiteGuard等)やキャッシュ系プラグインがフォームの送信処理と干渉することがあります。確認方法は、他のプラグインをすべて一時的に無効化してフォームを送信してみること。それで送れるなら、一つずつ有効化しながら原因プラグインを特定できます。
サイトをHTTPS化した後、フォームのactionがHTTPのままになっているケースです。ブラウザのセキュリティポリシーにより、HTTPSページからHTTPへの送信がブロックされます。WordPress管理画面の「設定 → 一般」でサイトURLがhttps://になっているか確認してください。
確認する順番【チェックリスト】
上から順番に確認することで、最短で原因を特定できます。
最も効果的な解決策:WP Mail SMTPの設定方法
原因がどれであっても、WP Mail SMTPを導入してGmail SMTPで送信する設定が最も根本的な解決策です。手順は以下の通りです。
WordPressプラグイン検索で「WP Mail SMTP」を検索してインストール・有効化します。
Googleアカウントの2段階認証を有効にした上で、「アプリパスワード」を発行します。通常のGmailパスワードではなくこちらを使います。
SMTPホスト:smtp.gmail.com / ポート:587 / 暗号化:TLS / ユーザー名:Gmailアドレス / パスワード:発行したアプリパスワード
プラグインの「メールテスト」機能で実際に送信し、受信できれば設定完了です。
それでも直らない場合
レンタルサーバーの管理画面からPHPエラーログを確認すると、具体的なエラーメッセージが表示されることがあります。
古いバージョンのContact Form 7はPHPやWordPressの新バージョンと非互換になっている場合があります。
カスタムテーマのfunctions.phpでwp_mail()をフックしているコードがある場合、それが原因になっているケースもあります。デフォルトテーマ(Twenty Twenty-Five等)に一時的に切り替えて確認してみてください。
まとめ
WordPressのお問い合わせフォームが送れない原因は、①スパム判定、②PHP mail()の制限、③送信先アドレスのミス、④プラグイン競合、⑤HTTP/HTTPSの混在、の5つがほとんどです。
どれが原因かわからない場合でも、WP Mail SMTPを導入してSMTP送信に切り替えるだけで解決するケースが8割以上です。まずここから試してみてください。
設定してもうまくいかない・WordPressのカスタマイズや問題解決を依頼したいという方は、お気軽にご相談ください。
WordPressのトラブル・カスタマイズはお任せください
無料相談はこちら →