E-mails Non Envoyés
Dépannage étape par étape pour les problèmes de livraison d'e-mails.
Étape 1 : Vérifier les bases
# Vérifier les paramètres SMTP dans .env
grep MAIL_ .env
Vérifiez :
MAIL_MAILER=smtp(paslogounull)MAIL_HOSTest correctMAIL_PORTest correct (587 pour TLS, 465 pour SSL)MAIL_USERNAMEetMAIL_PASSWORDsont renseignésMAIL_ENCRYPTION=tls(oussl)
Étape 2 : Tester via le panneau d'administration
- Allez dans Admin > Paramètres > E-mail
- Cliquez sur Envoyer un e-mail de test
- Consultez le message d'erreur en cas d'échec
Étape 3 : Tester via la ligne de commande
php artisan tinker
Mail::raw('Test', function ($m) {
$m->to('[email protected]')->subject('Test');
});
Consultez storage/logs/laravel.log pour les erreurs.
Problèmes courants
| Problème | Solution |
|---|---|
| "Connection timed out" | Le port 587/465 est bloqué par l'hébergeur. Essayez le port 2525 ou contactez votre hébergeur. |
| "Authentication failed" | Nom d'utilisateur/mot de passe incorrect. Pour Gmail, utilisez un mot de passe d'application. |
| "Certificate verify failed" | PHP obsolète. Essayez 'verify_peer' => false dans les options du mailer config/mail.php. |
| E-mails dans le dossier spam | Ajoutez des enregistrements DNS SPF, DKIM et DMARC. |
| E-mails retardés | Utilisez-vous QUEUE_CONNECTION=database ? Assurez-vous que le worker de file d'attente fonctionne. |
| Aucune erreur mais aucun e-mail | Utilisez-vous MAIL_MAILER=log ? Les e-mails sont journalisés, pas envoyés. Consultez storage/logs/laravel.log. |
Utiliser MAIL_MAILER=log pour le débogage
Définissez MAIL_MAILER=log dans .env pour capturer tous les e-mails dans le fichier journal au lieu de les envoyer. Utile pour vérifier le contenu des e-mails sans affecter les vrais destinataires.