ロリポップでPHPメールフォームが送信できない・届かない時の確認順番
お問い合わせフォームは、画面上では送信完了に見えても、メールが届いていないことがあります。コード、サーバー、迷惑メール判定のどこで止まっているかを分けて確認します。
確認日と対象
確認日: 2026年5月16日。ロリポップで自作PHPメールフォームを設置し、完了画面は出るのにメールが届かない、または mb_send_mail が失敗する初心者向けです。
WordPressプラグイン固有のフォーム、外部SMTPサービスの詳細設定、大量配信システムは対象外です。まず送信処理、From、Reply-To、迷惑メール、受信側の状態を切り分けます。
メールフォームが届かない時の確認順
完了画面だけで判断せず、mb_send_mail の戻り値、From、Reply-To、受信側、PHPエラーを順番に確認します。
まず送信結果を変数で確認する
mb_send_mail の戻り値を見ずに完了画面へ進めると、失敗に気づけません。
$sent = mb_send_mail($to, $subject, $body, $headers);
if (!$sent) {
// ログに残す、または管理者向けに確認する
}
実際に見る順番
「完了しました」と表示されることと、メールが実際に届くことは別です。次の順番で確認してください。
| 順番 | 見る場所 | 分かること |
|---|---|---|
| 1 | 完了画面の条件 | 送信成功時だけ完了表示にしているか |
| 2 | mb_send_mail の戻り値 | PHP側で送信処理が成功扱いか |
| 3 | 送信先メールアドレス | 入力ミス、別アドレス、受信箱の見間違い |
| 4 | Fromヘッダー | 自分のドメインのメールになっているか |
| 5 | Reply-To | ユーザーのメールアドレスを返信先にできているか |
| 6 | 迷惑メール、プロモーション、隔離 | 送信はされたが受信側で止まっていないか |
| 7 | PHPエラーログ | 文字コード、ヘッダー、PHPエラーで止まっていないか |
Fromは自分のドメインのメールにする
ユーザーが入力したメールアドレスをそのままFromにすると、なりすましのように見えて届きにくくなることがあります。Fromは自分のドメインのメールにして、返信先をReply-Toにします。
$headers = "From: contact@example.com\r\n";
$headers .= "Reply-To: " . $email . "\r\n";
届かない時の確認リスト
- 送信先メールアドレスが間違っていないか
- 迷惑メールフォルダに入っていないか
- Fromが自分のドメインのメールアドレスか
- フォーム入力値に改行を含めたヘッダー注入ができないようにしているか
- PHPページ自体が真っ白や500エラーになっていないか
完了画面だけで判断しない
送信完了の表示は、メール送信の成功とは別です。テスト時は自分宛てに送信し、受信、迷惑メール、文字化け、返信先を確認します。
AIに相談する時のメモ
AIに相談する時は、フォームURL、送信結果、From/Reply-To、受信側の状態を整理します。メールアドレスは一部伏せても大丈夫です。パスワードや管理画面URLは貼らないでください。
ロリポップでPHPメールフォームが送信できない・届かない件について相談します。
フォームURL:
起きている症状:
例: 完了画面は出るが届かない / mb_send_mailがfalseになる / 迷惑メールに入る / 文字化けする
送信処理に使っている関数:
例: mb_send_mail / mail
mb_send_mailの戻り値:
Fromに設定しているメールアドレス:
例: contact@example.com
Reply-Toに設定している内容:
送信先メールアドレス:
例: info@example.com(一部伏せています)
受信側で確認したこと:
- 迷惑メール:
- プロモーション:
- 容量上限:
- 別アドレスへのテスト:
- Undeliveredメール:
PHPエラーやログ:
パスワード、管理画面URL、個人情報は伏せています。
初心者向けに、次に見る順番を教えてください。
公式情報で確認するところ
| 確認したいこと | 公式情報 | この記事での使い方 |
|---|---|---|
| フォームから送信したメールが届かない原因 | ロリポップ公式 メールフォームから送信したメールが届かない | 迷惑メール判定、送信元メールアドレス、返信先設定の確認に使います。 |
| SENDMAILの利用可否 | ロリポップ公式 SENDMAILは利用できますか | PHPのメール送信がサーバー側で利用できる前提と、送信件数の注意を確認します。 |
| 受信側の問題 | ロリポップ公式 特定のメールアドレスで一部のメールが受信できません | 送信ではなく受信側で止まっている可能性を確認します。 |