Kullanıcılara otomatik ve manuel e-posta gönderimi
Kullanıcılara otomatik ve manuel e-postalar göndermek için kapsamlı bir mail sistemi kurduk. Hoş geldin maili, şifre sıfırlama, abonelik bildirimleri ve kampanya duyuruları bu sistem üzerinden gönderiliyor.
Hoş geldin, şifre sıfırlama
Toplu duyuru ve promosyon
Fatura ve abonelik mailleri
Markalı mail tasarımları
Mail gönderildi, teslim durumu loglandı
Bounce, spam veya geçersiz adres hatası
Sistem bir e-posta göndermek istediğinde (hoş geldin maili, şifre sıfırlama, kampanya duyurusu), arka planda şu süreç işliyor:
Laravel'in Mailable sınıfından türetilen mail sınıfı (örn: WelcomeMail, PasswordResetMail) içerik ve şablonu belirliyor. build() metodunda Blade view ve değişkenler tanımlanıyor.
Mail::to($user)->queue(new WelcomeMail()) ile mail kuyruğa ekleniyor. jobs tablosuna payload (mail içeriği serialized) ve queue adı (emails) kaydediliyor. Bu sayede kullanıcı bekletilmiyor.
Laravel Horizon worker'ları jobs tablosundan işleri alıp işliyor. emails kuyruğu için ayrı worker'lar çalışıyor. Mail gönderimi başarısız olursa failed_jobs tablosuna kaydedilip sonra tekrar denenebiliyor.
config/mail.php'deki SMTP ayarları ile mail sunucusuna bağlanılıyor. MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD ile kimlik doğrulama yapılıp mail iletiliyor.
Mail sunucusu SPF (hangi sunucular mail gönderebilir) ve DKIM (dijital imza) kayıtlarını kontrol ediyor. Bu sayede mailler spam klasörüne düşmüyor. DNS kayıtları doğru yapılandırılmış durumda.
Teslim edilemeyen mailler (geçersiz adres, dolu kutu) için bounce webhook'u var. mail_bounces tablosuna kayıt yapılıyor ve o adrese bir daha mail gönderilmiyor. Bu sayede sender reputation korunuyor.
E-posta gönderimi için kullanılan protokol.
Mektup için posta servisi gibi
Maillerin sırayla gönderilmesi için bekleme listesi.
Sıra bekleyen müşteriler gibi
Önceden hazırlanmış mail tasarımı.
Hazır davetiye kalıbı gibi
Teslim edilemeyen, geri dönen mail.
İade edilen mektup gibi