問い合わせフォームが届かない時の確認チェックリスト
問い合わせフォームで「送信完了」と表示されているのにメールが届かない場合、フォーム画面だけを見ても原因は分かりません。
迷惑メールに入っているだけのこともあれば、送信先アドレス、From、PHPの設定、サーバー制限、フォーム処理のエラーが原因のこともあります。まずは順番に切り分けましょう。
確認日と対象
確認日: 2026年5月19日。WordPressではないHTML/PHPサイトの問い合わせフォームで、送信完了に見えるのにメールが届かない時の確認を対象にしています。
メール配信サービス、CRM、WordPressプラグインの詳細設定は対象外です。まずは受信側、送信先、From/Reply-To、PHP送信処理、サーバー制限、ログを分けるために使ってください。
フォームメールが届かない時の確認順
受信側、フォーム設定、サーバー送信、ログ、AI相談メモの順で見ると、原因を絞りやすくなります。
先に結論
問い合わせフォームが届かない時は、この順番で確認します。
- 迷惑メールや受信側の振り分けを見る
- 送信先アドレスが正しいか確認する
- 完了画面が出ているか確認する
- FromとReply-Toの指定を見る
- PHPのメール送信処理を確認する
- サーバーのメール制限やログを見る
- AIやサーバー会社へ相談するメモを作る
症状クラスターで次に見るページ
問い合わせフォームの不具合は、届かない、届くが迷惑メールに入る、スパム投稿が多い、送信できたか分からない、で見る場所が変わります。今の症状に近いページへ進んでください。
| 今の見え方 | 次に見るページ | 整理すること |
|---|---|---|
| 完了画面は出るが、送信できたか分からない | PHPメールフォームが送信できたか分からない時のログ確認順番 | 送信結果、送信先、時刻、IP、ログの置き場所を確認します。 |
| メールは届くが迷惑メールに入る | 問い合わせフォームが迷惑メールに入る時の確認順番 | From、Reply-To、件名、本文、送信先別テスト、SPFを分けます。 |
| 海外スパムやURLだらけの投稿が多い | PHPメールフォームにスパム投稿が来る時のTurnstile確認順番 | site key、secret key、PHP側検証、ログ、追加対策を確認します。 |
| PHP側の送信処理そのものが不安 | ロリポップでPHPメールフォームが送信できない時の確認順番 | mb_send_mail、文字コード、From、サーバー設定、エラーログを見ます。 |
1. 迷惑メールフォルダを見る
まず、フォームやPHPを直す前に、受信側を確認します。送信自体は成功していても、迷惑メールやプロモーション欄へ入っていることがあります。
- 迷惑メールフォルダを確認した
- Gmailのプロモーションやすべてのメールを確認した
- 別のメールアドレスでもテストした
- 独自ドメインメールとGmailの両方で試した
2. 送信先アドレスを確認する
フォームの送信先が古いメールアドレスやテスト用アドレスのままになっていることがあります。コード内の送信先を確認します。
| 確認する場所 | 見ること |
|---|---|
$to | 受信したいメールアドレスになっているか |
| 設定ファイル | メールアドレスを別ファイルで管理していないか |
| 管理画面 | フォーム設定で別アドレスを指定していないか |
| 入力ミス | ドット、ハイフン、全角文字が混ざっていないか |
3. 完了画面が出ているか確認する
「届かない」と思っていても、実はフォーム送信処理まで進んでいない場合があります。送信ボタンを押した後の画面を見ます。
- 送信完了ページへ移動するか
- 未入力エラーが出ていないか
- 画面が真っ白になっていないか
- 500エラーになっていないか
- 送信後に同じ入力画面へ戻っていないか
4. FromとReply-Toを見る
フォームメールでは、差出人を訪問者のメールアドレスにすると、サーバーや受信側に拒否されやすくなることがあります。Fromはサイトのドメインに合わせ、返信先をReply-Toに入れる形が安全です。
Fromに注意
たとえば自分のサイトが example.com なら、Fromは no-reply@example.com のようなドメイン内メールにし、訪問者のメールアドレスはReply-Toへ入れる方が安定しやすいです。
5. PHPのメール送信処理を確認する
PHPで作ったフォームなら、mail() の戻り値、文字コード、ヘッダー、入力値の扱いを確認します。
mail()の結果を確認している- 送信失敗時のエラー表示やログがある
- 件名や本文が文字化けしていない
- 改行コードやヘッダーの書き方が崩れていない
- 入力値をそのままヘッダーへ入れていない
6. サーバーの制限やログを見る
レンタルサーバーでは、送信元、送信数、迷惑メール対策、PHP設定によってメールが届かないことがあります。ロリポップなどでは、公式ヘルプや管理画面も確認します。
- サーバー側でメール送信が使えるプランか
- 短時間に大量送信していないか
- PHPエラーログに警告が出ていないか
- フォーム送信ログを残しているか
- 独自ドメインメールの受信設定ができているか
7. AIへ相談する時のメモ
AIに相談する時は、パスワードや個人情報を貼らずに、フォームの状態と確認済みの内容を整理します。
問い合わせフォームのメールが届きません。
フォームURL:
サーバー名:
PHPで送信しているか:
送信完了画面は出るか:
迷惑メールフォルダを確認したか:
送信先アドレスの確認結果:
From / Reply-To の設定:
PHPエラーログの有無:
直前に変更したファイル:
試したメールアドレス:
パスワードや個人情報は貼りません。
原因を、受信側、フォーム設定、PHP処理、サーバー制限に分けて確認してください。
問い合わせフォーム確認チェックリスト
- 迷惑メールフォルダを見た
- 別のメールアドレスで試した
- 送信先アドレスを確認した
- 送信完了画面が出るか確認した
- FromとReply-Toを確認した
- PHPの送信処理を確認した
- サーバー制限やログを確認した
- AIやサーバー会社へ相談するメモを作った
公式情報で確認するところ
フォームメールは、PHPコードだけでなく、サーバー側のメール仕様や受信側の迷惑メール判定にも影響されます。判断に迷う時は、公式情報も合わせて確認してください。
| 確認したいこと | 公式情報 | この記事での使い方 |
|---|---|---|
| ロリポップでメールが届かない | ロリポップ公式 メールフォームから送信したメールが届かない | サーバー側のメール送信、受信側、迷惑メール確認を切り分ける時に使います。 |
PHPの mail() |
PHP公式 mail | 戻り値、ヘッダー、送信処理の前提を確認する時に使います。 |
| 迷惑メールに入る | Gmailヘルプ 迷惑メールのマークを外す | 受信側で迷惑メール扱いになっていないか確認する時に使います。 |