メインコンテンツまでスキップ

メールが送信されない

メール配信の問題に関するステップバイステップのトラブルシューティングです。


ステップ 1:基本を確認する

# .env の SMTP 設定を確認
grep MAIL_ .env

以下を確認します:

  • MAIL_MAILER=smtplog または null ではないこと)
  • MAIL_HOST が正しいこと
  • MAIL_PORT が正しいこと(TLS は 587、SSL は 465)
  • MAIL_USERNAMEMAIL_PASSWORD が入力されていること
  • MAIL_ENCRYPTION=tls(または ssl

ステップ 2:管理パネルでテストする

  1. Admin > Settings > Email に移動します
  2. Send Test Email をクリックします
  3. 失敗した場合はエラーメッセージを確認します

ステップ 3:コマンドラインでテストする

php artisan tinker
Mail::raw('Test', function ($m) {
$m->to('[email protected]')->subject('Test');
});

エラーは storage/logs/laravel.log で確認してください。


よくある問題

問題解決策
「Connection timed out」ポート 587/465 がホスティングでブロックされています。ポート 2525 を試すか、ホストに問い合わせてください。
「Authentication failed」ユーザー名/パスワードが間違っています。Gmail の場合はアプリパスワードを使用してください。
「Certificate verify failed」古い PHP。config/mail.php のメーラーオプションで 'verify_peer' => false を試してください。
メールがスパムに入るSPF、DKIM、DMARC の DNS レコードを追加してください。
メールが遅延するQUEUE_CONNECTION=database を使用していますか?キューワーカーが動作していることを確認してください。
エラーはないがメールが届かないMAIL_MAILER=log を使用していませんか?メールはログに記録されており、送信されていません。storage/logs/laravel.log を確認してください。

デバッグ用の MAIL_MAILER=log の使用

.envMAIL_MAILER=log を設定すると、実際に送信する代わりにすべてのメールをログファイルにキャプチャします。実際の受信者に影響を与えずにメールの内容を確認するのに便利です。


次のステップ