Muharrem Önel

MUHARREM

Önel
Full Stack Developer
|
Blog'a Dön
Teknoloji20 Ağustos 20268 dk okuma

Node.js ile Profesyonel E-posta Gönderim Sistemi Kurma

M
Muharrem ÖnelFull Stack Developer

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.

Node.jsEmailNodemailerSMTPBackendAutomation

Diğer Yazılar