島根県安来市のフリーランスエンジニア_プログラマー画像1

WordPressのお問い合わせフォームが送れない原因と解決方法【Contact Form 7対応】

「お問い合わせフォームから送信したのにメールが届かない」「送信ボタンを押してもエラーになる」——WordPressを使っていると、こうしたフォームトラブルは非常によく起きます。本記事では、Contact Form 7をはじめとするWordPressフォームが送れない主な原因5つと、それぞれの具体的な解決方法をまとめました。

送れない原因5つ

原因は大きく5つに分類できます。上から順に確認していくと効率よく解決できます。

1
スパム判定・reCAPTCHAの誤検知
フォームの内容がスパムと判定され、サーバー側でブロックされるケースです。Contact Form 7にreCAPTCHAを設定している場合、設定ミスや古いAPIキーが原因で正常な送信もブロックされることがあります。まずはContact Form 7の設定画面でreCAPTCHAのサイトキー・シークレットキーが正しく入力されているか確認してください。
2
WordPressのPHP mail()関数が機能していない
WordPressは標準でPHPのmail()関数を使ってメールを送信しますが、多くのレンタルサーバーではセキュリティ上の理由からmail()を制限しています。特に共有サーバー(ロリポップ・さくら・エックスサーバーなど)でよく発生します。解決策は「WP Mail SMTP」プラグインを導入し、GmailやSendGridなどのSMTPサーバー経由で送信する設定に切り替えることです。
3
送信先メールアドレスの設定ミス
Contact Form 7の「メール」タブにある「宛先」が間違っていると、送信処理は成功しているのにメールが届かない状態になります。よくあるミスは、全角スペースの混入・ドメインのタイプミス・古いメールアドレスのままになっているケースです。設定画面で宛先アドレスを今一度コピー&ペーストで確認しましょう。
4
プラグインの競合
セキュリティ系プラグイン(Wordfence・SiteGuard等)やキャッシュ系プラグインがフォームの送信処理と干渉することがあります。確認方法は、他のプラグインをすべて一時的に無効化してフォームを送信してみること。それで送れるなら、一つずつ有効化しながら原因プラグインを特定できます。
5
SSL・HTTPSの問題(混在コンテンツ)
サイトをHTTPS化した後、フォームのactionがHTTPのままになっているケースです。ブラウザのセキュリティポリシーにより、HTTPSページからHTTPへの送信がブロックされます。WordPress管理画面の「設定 → 一般」でサイトURLがhttps://になっているか確認してください。

確認する順番【チェックリスト】

上から順番に確認することで、最短で原因を特定できます。

送信先メールアドレスを再確認(全角スペース・タイプミスがないか)
迷惑メールフォルダに振り分けられていないか確認
WP Mail SMTPプラグインを導入してSMTP送信に切り替える
☐ 他のプラグインを一時的に全て無効化してテスト送信
☐ サイトURLがhttps://になっているか確認
☐ reCAPTCHAのAPIキーを再発行・再設定

最も効果的な解決策:WP Mail SMTPの設定方法

原因がどれであっても、WP Mail SMTPを導入してGmail SMTPで送信する設定が最も根本的な解決策です。手順は以下の通りです。

① WP Mail SMTPをインストール

WordPressプラグイン検索で「WP Mail SMTP」を検索してインストール・有効化します。

② Gmailの「アプリパスワード」を発行

Googleアカウントの2段階認証を有効にした上で、「アプリパスワード」を発行します。通常のGmailパスワードではなくこちらを使います。

③ WP Mail SMTPにSMTP情報を入力

SMTPホスト:smtp.gmail.com / ポート:587 / 暗号化:TLS / ユーザー名:Gmailアドレス / パスワード:発行したアプリパスワード

④ テストメールで動作確認

プラグインの「メールテスト」機能で実際に送信し、受信できれば設定完了です。

それでも直らない場合

サーバーのエラーログを確認する

レンタルサーバーの管理画面からPHPエラーログを確認すると、具体的なエラーメッセージが表示されることがあります。

Contact Form 7を最新バージョンに更新する

古いバージョンのContact Form 7はPHPやWordPressの新バージョンと非互換になっている場合があります。

テーマのfunctions.phpとの干渉

カスタムテーマのfunctions.phpでwp_mail()をフックしているコードがある場合、それが原因になっているケースもあります。デフォルトテーマ(Twenty Twenty-Five等)に一時的に切り替えて確認してみてください。

まとめ

WordPressのお問い合わせフォームが送れない原因は、①スパム判定、②PHP mail()の制限、③送信先アドレスのミス、④プラグイン競合、⑤HTTP/HTTPSの混在、の5つがほとんどです。

どれが原因かわからない場合でも、WP Mail SMTPを導入してSMTP送信に切り替えるだけで解決するケースが8割以上です。まずここから試してみてください。

設定してもうまくいかない・WordPressのカスタマイズや問題解決を依頼したいという方は、お気軽にご相談ください。

WordPressのトラブル・カスタマイズはお任せください

無料相談はこちら →

ブラウザ拡張機能のUIデモを作った|Chrome拡張機能で動画ダウンロードボタンを追加する仕組み

WordPress管理画面にログインできない原因と解決方法|パスワード・URL忘れ・ループ対処