Neden Kendi E-posta Sisteminize İhtiyacınız Var?
Kullanıcı kayıt onayı, şifre sıfırlama, sipariş bildirimleri, fatura gönderimi — modern web uygulamalarında e-posta gönderimi kritik bir altyapı bileşenidir. Doğru kurgulanmış bir e-posta sistemi, kullanıcı deneyimini güçlendirir.
Nodemailer ile Temel Kurulum
Nodemailer, Node.js ekosisteminin en popüler e-posta gönderim kütüphanesidir:
- Tüm SMTP sunucularıyla uyumlu
- HTML ve düz metin desteği
- Dosya eki (attachment) desteği
- OAuth2 authentication
- Connection pooling ile yüksek performans
SMTP Yapılandırması
Geliştirme ortamı için:
- Ethereal Email veya Mailtrap kullanın — gerçek e-posta göndermeden test edin
- Geliştirme sürecinde yanlışlıkla gerçek kullanıcılara mail gitmesini önleyin
Production ortamı için:
- Kendi SMTP sunucunuz (Postfix, hMail) — tam kontrol ama bakım gerektirir
- Transactional email servisleri (SendGrid, AWS SES, Resend) — yüksek deliverability
- SMTP relay servisleri — Gmail SMTP gibi (günlük limit var, production için önerilmez)
Kritik SMTP ayarları:
- SPF kaydı — hangi sunucuların sizin adınıza mail gönderebileceğini belirtir
- DKIM imzası — e-postanın değiştirilmediğini doğrular
- DMARC politikası — SPF ve DKIM başarısız olduğunda ne yapılacağını belirler
- Bu üçü olmadan e-postalarınız büyük olasılıkla spam'e düşer
HTML E-posta Şablonları
E-posta HTML'i, web HTML'inden çok farklıdır:
- Modern CSS özelliklerinin çoğu çalışmaz — Flexbox ve Grid kullanmayın
- Tablo tabanlı layout kullanın (evet, hâlâ tablolar)
- Inline CSS kullanın — çoğu e-posta istemcisi style tag'lerini kaldırır
- Maksimum genişlik 600px — çoğu e-posta istemcisi için ideal
- Görselleri harici URL olarak referans verin, base64 embed yapmayın
- Alt text ekleyin — görseller varsayılan olarak engellenebilir
- Dark mode uyumluluğunu düşünün
E-posta Türleri ve Stratejileri
Transactional E-postalar (anında gönderilmeli):
- Kayıt onayı ve hoş geldin e-postası
- Şifre sıfırlama
- Sipariş onayı ve fatura
- İki faktörlü doğrulama kodları
Notification E-postaları (kısa gecikme kabul edilebilir):
- Yeni mesaj bildirimi
- Abonelik yenileme hatırlatıcısı
- Haftalık özet raporu
Queue Sistemi ile E-posta Gönderimi
E-postaları senkron olarak göndermek API response süresini uzatır. Queue sistemi kullanın:
- E-posta gönderim isteği geldiğinde queue'ya ekleyin
- Worker process queue'dan alıp arka planda göndersin
- Başarısız gönderimleri otomatik tekrar deneyin (retry with backoff)
- Gönderim durumunu izleyin — delivered, bounced, failed
BullMQ (Redis tabanlı), RabbitMQ veya basit bir veritabanı tabanlı queue kullanabilirsiniz.
Spam'e Düşmemek İçin
E-postalarınızın spam klasörüne düşmemesi için:
- DNS kayıtları: SPF, DKIM ve DMARC mutlaka yapılandırın
- Gönderici itibarı: Yeni domain'den toplu mail göndermeyin — yavaş yavaş artırın (IP warmup)
- İçerik kalitesi: Spam tetikleyici kelimelerden kaçının (bedava, hemen, acil)
- Unsubscribe linki: Her e-postada kolayca abonelikten çıkma seçeneği sunun
- Bounce yönetimi: Geçersiz adreslere tekrar tekrar mail göndermeyin
- Gönderim sıklığı: Aşırı sık gönderim yapmayın
Rate Limiting ve Throttling
SMTP sunucularının gönderim limitleri vardır:
- Gmail: Günde 500 (kişisel), 2000 (Workspace)
- AWS SES: Saniyede 14 (varsayılan, artırılabilir)
- SendGrid: Plana göre değişir
Rate limiter ile bu sınırları aşmayın — hesabınız askıya alınabilir.
Monitoring ve Logging
E-posta sisteminizi izleyin:
- Gönderim başarı/başarısızlık oranları
- Bounce rate (hard bounce vs soft bounce)
- Ortalama gönderim süresi
- Queue derinliği — birikim var mı?
- SMTP bağlantı hataları
Sonuç
E-posta gönderimi basit görünür ama production-grade bir sistem kurmak detaylı çalışma gerektirir. DNS kayıtları, şablon tasarımı, queue sistemi ve monitoring'in hepsi bir bütündür. Doğru kurgulanmış bir e-posta altyapısı, uygulamanızın profesyonelliğini ve güvenilirliğini artırır.
Projeniz için e-posta altyapısı kurmak mı istiyorsunuz? İletişime geçin.
