E-posta Gönderilmiyor
E-posta teslim sorunları için adım adım sorun giderme.
Adım 1: Temel Kontroller
# .env SMTP ayarlarını kontrol edin
grep MAIL_ .env
Şunları doğrulayın:
MAIL_MAILER=smtp(logveyanulldeğil)MAIL_HOSTdoğruMAIL_PORTdoğru (TLS için 587, SSL için 465)MAIL_USERNAMEveMAIL_PASSWORDdoluMAIL_ENCRYPTION=tls(veyassl)
Adım 2: Admin Paneli Üzerinden Test
- Admin > Ayarlar > E-posta bölümüne gidin
- Test E-postası Gönder'e tıklayın
- Başarısız olursa hata mesajını kontrol edin
Adım 3: Komut Satırı Üzerinden Test
php artisan tinker
Mail::raw('Test', function ($m) {
$m->to('[email protected]')->subject('Test');
});
Hatalar için storage/logs/laravel.log dosyasını kontrol edin.
Yaygın Sorunlar
| Sorun | Çözüm |
|---|---|
| "Connection timed out" (Bağlantı zaman aşımı) | 587/465 portu barındırma tarafından engellenmiş. 2525 portunu deneyin veya barındırma sağlayıcısıyla iletişime geçin. |
| "Authentication failed" (Kimlik doğrulama başarısız) | Yanlış kullanıcı adı/şifre. Gmail için Uygulama Şifresi kullanın. |
| "Certificate verify failed" (Sertifika doğrulama başarısız) | Eski PHP. config/mail.php mailer seçeneklerinde 'verify_peer' => false deneyin. |
| E-postalar spam'e düşüyor | SPF, DKIM ve DMARC DNS kayıtlarını ekleyin. |
| E-postalar gecikiyor | QUEUE_CONNECTION=database mı kullanıyorsunuz? Kuyruk işçisinin çalıştığından emin olun. |
| Hata yok ama e-posta yok | MAIL_MAILER=log mu kullanıyorsunuz? E-postalar gönderilmiyor, günlüğe kaydediliyor. storage/logs/laravel.log dosyasını kontrol edin. |
Hata Ayıklama İçin MAIL_MAILER=log Kullanımı
Gerçek alıcıları etkilemeden e-posta içeriğini doğrulamak için .env dosyasında MAIL_MAILER=log ayarlayın. Bu, tüm e-postaları göndermek yerine günlük dosyasına kaydeder.