WordPressの問い合わせフォームでメールが届かない?原因と解決方法を徹底解説!

とあるキッカケがあり、
「あれっもしかして私のサイトの問い合わせフォームからメール届いていない?」
と思うことがありました。
焦って、テストでメールを送信していつも使っているGmailアプリで確認してみると
「やっぱり、メールが届かない!?」
…結果的には勘違いで、メールサーバではキチンと受信できていたのですが。
でも、本当に問い合わせフォームからメールが届かなかったらシャレになりません。
ゾッとしました。
WordPressでは「Contact Form 7」や「WPForms」などのプラグインを使えば、簡単に問い合わせフォームを設置できます。
しかし、実際に調べてみると「フォームから送信したのにメールが届かない」
「お客さんのメッセージを受け取れなかった」というトラブルが非常に多いのです。
この記事では、WordPressの問い合わせフォームでメールが届かない原因と、その解決方法を詳しく解説します。
初心者でも再現できる手順を紹介しますので、ぜひ一つずつチェックしてみてください。
WordPressでオリジナルのサイトを作りたい!
と思っている方はこちらの記事もオススメです!
なぜWordPressの問い合わせフォームでメールが届かないのか?
まず理解しておきたいのは、WordPressがメールを送信する仕組みです。
WordPressでは内部で「wp_mail()」というPHP関数を使ってメールを送信しています。
これは、WordPressの標準機能です。
しかし、この関数はサーバーのメール設定に強く依存しており、
サーバー側で適切に設定されていないと正常に送れないことがあります。
特に以下のようなケースでは、メールが届かなくなりやすいです。
- PHPの mail() 関数が無効化されているサーバーを使っている
- 差出人アドレスが「フリーメール(Gmailなど)」になっている
- メールが迷惑メールフォルダに振り分けられている
- 問い合わせフォームの設定に誤りがある
それでは、それぞれの原因を詳しく見ていきましょう。
2. メールが届かない主な原因と確認ポイント
2-1. サーバーのメール送信設定が原因
ロリポップ、ConoHa WING、Xserverなど、
レンタルサーバーによってはPHPの mail() 関数が制限されている場合があります。
特に、スパム対策が厳しいサーバーでは「送信元メールアドレスが正しく認証されていない」と判断され、
送信自体がブロックされることがあります。
→ 対策:SMTP経由で送信する(後述)
2-2. 迷惑メールフィルターによるブロック
GmailやOutlookなどのメールサービスでは、スパム判定が非常に厳しいです。
たとえば、送信元が「WordPress@ドメイン名」といった形式だと、迷惑メールに入る可能性があります。
特に次のような場合は注意です。
- 差出人アドレスがGmailやYahooなどのフリーメール
- SPFやDKIMなどのドメイン認証が設定されていない
- メール本文にURLや英数字が多い
→ 対策:独自ドメインのアドレスを使い、SPF/DKIM認証を設定する。
2-3. プラグイン設定ミス
代表的な問い合わせフォームプラグイン「Contact Form 7」では、設定ミスによって送信エラーになるケースが多いです。
特に以下のような設定をしていないか確認しましょう。
- 「送信先」アドレスを誤って入力している
- 「送信元」アドレスにGmailなどの外部メールを指定している
- メールテンプレートのTo/From欄が空欄または誤記
Contact Form 7では、Fromに「自分のドメインメールアドレス」
を設定するのが基本です。
例:
送信元: info@あなたのドメイン.com
これを守らないと、サーバー側で「なりすまし」と判断され、送信が拒否されることがあります。
2-4. サーバーの送信制限
共有サーバーなどでは、1時間あたりの送信可能メール数に上限が設けられています。
スパムメール防止のためで、特に大量の自動返信を行っている場合は制限を超えてしまうことも。
この場合、サーバー管理画面のログで「送信制限エラー(SMTP Error 421など)」を確認しましょう。
3. 確実に届くようにする解決方法
3-1. SMTPプラグインを導入する
最も効果的な解決策は、SMTP経由でメールを送信するように設定することです。
SMTPとは、インターネット上で確実にメールを送信するための通信プロトコルです。
おすすめプラグイン:
- WP Mail SMTP
- Post SMTP Mailer/Email Log
これらを導入することで、WordPressはPHPメール関数ではなく、
GmailやSendGridなどの外部SMTPサーバーを通じて送信するようになります。
設定は次の通りです。
- プラグインをインストールして有効化
- メールアドレス(例:info@yourdomain.com)を設定
- SMTPホスト(例:smtp.gmail.com)を指定
- SSL/TLS設定を有効化し、ポート番号を設定(465または587)
- テストメールを送信して確認
これだけで、メールが確実に届くようになります。
3-2. テスト送信で動作確認する
設定後は、必ず「テストメール送信」を行いましょう。
WP Mail SMTPにはテスト送信機能があり、送信結果をログで確認できます。
また、Flamingoなどのプラグインを併用すると、送信履歴をWordPress管理画面から確認できます。
3-3. SPF・DKIM認証を設定する
独自ドメインを使用している場合は、DNS設定でSPFとDKIMを有効化しておくと、迷惑メール判定を大幅に減らせます。
例:SPFレコード設定例
v=spf1 include:_spf.google.com ~all
これをドメインのDNSに追加すれば、Gmail経由での送信が正当であると証明できます。
3-4. 問い合わせフォームの設定を再確認する
Contact Form 7の場合、以下の点を見直しましょう。
- 「送信元(From)」は自分のドメインメールにする
- 「送信先(To)」は正しいアドレスに設定
- 「自動返信メール」も確認する
WPFormsやFluent Formsを使っている場合も、テスト送信で動作をチェックしておくのがおすすめです。
4. 定期的にフォームをチェックする習慣を
設定が正しくても、サーバー変更やプラグイン更新でメールが届かなくなることがあります。
そのため、月に1回はテスト送信をして動作確認するのがおすすめです。
また、「サンクスページ」や「自動返信メール」も設定しておくと、
送信者側・受信者側の両方で送信結果を確認できます。
私もこれを機会に定期的に問い合わせフォームから送信できるかテストしてみるようにします
5. それでも届かない場合の最終手段
どうしても改善しない場合は、以下の方法も検討しましょう。
- SendGridやAmazon SESなどの外部メールAPIを利用する
- メール送信専用のサーバー(Mailgunなど)を導入する
- 専門業者にSMTP設定を依頼する
このような外部サービスを使えば、送信ログも残るため、原因調査も容易になります。
まとめ:SMTP設定で「届かない」トラブルを防ごう
WordPressの問い合わせフォームでメールが届かない原因は、
- 「サーバー設定」
- 「プラグイン設定」
- 「迷惑メール対策」
のいずれかにあります。
特に多いのは、PHPメール送信のまま運用しているケースです。
WP Mail SMTPなどのプラグインを導入してSMTP経由に切り替えれば、送信失敗はほぼ解消できます。
問い合わせフォームは、訪問者とサイト運営者をつなぐ大切な窓口です。
届かないまま放置してしまうと、貴重なビジネスチャンスを逃すことにもなります。
ぜひこの記事を参考に、確実にメールが届く設定を整えておきましょう。
私も今回の出来事をキッカケにサイトの問い合わせフォームについて今一度見直してみようと思います。