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(nichtlogodernull)MAIL_HOSTist korrektMAIL_PORTist korrekt (587 für TLS, 465 für SSL)MAIL_USERNAMEundMAIL_PASSWORDsind ausgefülltMAIL_ENCRYPTION=tls(oderssl)
Schritt 2: Über Admin-Panel testen
- Zu Admin > Einstellungen > E-Mail gehen
- Auf Test-E-Mail senden klicken
- 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
| Problem | Lö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 Spam | SPF-, DKIM- und DMARC-DNS-Einträge hinzufügen. |
| E-Mails werden verzögert | QUEUE_CONNECTION=database verwendet? Sicherstellen, dass ein Queue-Worker läuft. |
| Kein Fehler, aber keine E-Mail | MAIL_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.