Zum Hauptinhalt springen

E-Mails werden nicht gesendet

Schrittweise Fehlerbehebung bei E-Mail-Zustellungsproblemen.


Schritt 1: Grundlagen prüfen

# .env SMTP-Einstellungen prüfen
grep MAIL_ .env

Prüfen Sie:

  • MAIL_MAILER=smtp (nicht log oder null)
  • MAIL_HOST ist korrekt
  • MAIL_PORT ist korrekt (587 für TLS, 465 für SSL)
  • MAIL_USERNAME und MAIL_PASSWORD sind ausgefüllt
  • MAIL_ENCRYPTION=tls (oder ssl)

Schritt 2: Über Admin-Panel testen

  1. Zu Admin > Einstellungen > E-Mail gehen
  2. Auf Test-E-Mail senden klicken
  3. Fehlermeldung bei Misserfolg prüfen

Schritt 3: Per Befehlszeile testen

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

storage/logs/laravel.log auf Fehler prüfen.


Häufige Probleme

ProblemLösung
„Connection timed out"Port 587/465 vom Hosting blockiert. Port 2525 versuchen oder Host kontaktieren.
„Authentication failed"Falscher Benutzername/Passwort. Für Gmail App-Passwort verwenden.
„Certificate verify failed"Altes PHP. 'verify_peer' => false in den Mailer-Optionen von config/mail.php versuchen.
E-Mails landen im SpamSPF-, DKIM- und DMARC-DNS-Einträge hinzufügen.
E-Mails werden verzögertQUEUE_CONNECTION=database verwendet? Sicherstellen, dass ein Queue-Worker läuft.
Kein Fehler, aber keine E-MailMAIL_MAILER=log verwendet? E-Mails werden protokolliert, nicht gesendet. storage/logs/laravel.log prüfen.

MAIL_MAILER=log zum Debuggen verwenden

Setzen Sie MAIL_MAILER=log in .env, um alle E-Mails in der Log-Datei zu erfassen, anstatt sie zu senden. Nützlich zum Überprüfen von E-Mail-Inhalten, ohne echte Empfänger zu beeinflussen.


Nächste Schritte