Yazılar

SMTP Nedir? Bir E-Posta 'Gönder' Butonuna Bastıktan Sonra Karşıya Nasıl Ulaşır? (MX, SPF, DKIM, DMARC)

Uygulamandan bir doğrulama kodu veya şifre sıfırlama e-postası gönderdiğinde arka planda hangi protokoller devreye girer? SMTP, IMAP ve POP3 farkından DNS MX kayıtlarına, e-postaların Spam kutusuna düşmesini önleyen SPF, DKIM ve DMARC imzalarına kadar uçtan uca e-posta mimarisi.

Furkan Özay18 Ekim 2026 · 4 dk okuma
czCZAY.DEV // EDITORIALTR
AĞ & PROTOKOLLER

#Ağ & Protokoller · 4 DK OKUMA

FURKAN ÖZAYVOL. 2026 // #2003

Uygulamanda yeni üye olan bir kullanıcıya "E-posta adresini doğrula" mesajı veya "Şifremi Unuttum" linki gönderirken kod tarafında yaptığın şey çok basittir: resend.emails.send() ya da nodemailer.sendMail() fonksiyonunu çağırırsın ve 2 saniye sonra kullanıcının telefonuna bildirim düşer.

Peki sen o fonksiyonu çağırdığın salisede arka planda ne oluyor? İnternetin en eski ve en sağlam dağıtık mimarilerinden biri olan SMTP nasıl çalışıyor ve gönderdiğin maillerin Spam (Gereksiz) kutusuna düşmemesi için hangi 3 kriptografik DNS kaydını ayarlamak zorundasın?

· · ·

1. SMTP (Simple Mail Transfer Protocol) Nedir?

İlk kez 1982 yılında (RFC 821) standartlaştırılan SMTP (Basit Posta Aktarım Protokolü), internet dünyasının posta kuryesidir.

Burada en sık karıştırılan temel kural şudur: SMTP sadece e-posta göndermek ve sunucular arasında taşımak (push) için kullanılır; gelen kutusundaki mailleri okumak için kullanılmaz!

  • SMTP (Port 587 TLS / 465 SSL / 25 Relay): E-postayı göndericiden alıp alıcının posta sunucusuna kadar teslim eden kurye protokolüdür.
  • IMAP (Port 993): Karşı sunucuya ulaşmış olan e-postaları telefonunda, bilgisayarında ve web tarayıcında senkronize şekilde okumanı sağlayan protokoldür.
  • POP3 (Port 995): E-postayı sunucudan tek bir cihaza indirip sunucudan silen eski tip okuma protokolüdür.
· · ·

2. Bir E-Postanın 4 Adımlı Yolculuğu (DNS MX Kayıtları)

Diyelim ki kendi sunucundan ([email protected]), [email protected] adresine bir e-posta gönderdin. Arka planda saniyeler içinde şu 4 adım gerçekleşir:

text
[1. Backend API] ──(SMTP :587)──▶ [2. Gönderici Posta Sunucusu (AWS SES / Resend)]
                                                       │
                                    (DNS Sorgusu: "gmail.com'un MX kaydı nedir?")
                                                       │
                                                       ▼
[4. Kullanıcının Telefonu] ◀──(IMAP :993)── [3. Gmail Gelen MX Sunucusu (Port :25)]
  1. Teslimat (Submission): Senin Node.js, PHP, Go veya .NET backend'in 587 numaralı port üzerinden şifreli (STARTTLS) olarak kendi posta gönderim servisine (AWS SES, Resend, Postmark veya kendi Postfix sunucuna) bağlanır ve mektubu verir.
  2. DNS MX (Mail Exchange) Sorgusu: Gönderici sunucun e-postayı nereye götüreceğini bilmez. Hemen DNS'e sorar: "Hey DNS, gmail.com alan adının postalarını hangi sunucu kabul ediyor?" DNS, o alan adının MX kaydını (gmail-smtp-in.l.google.com) döner.
  3. Sunucudan Sunucuya Aktarım (SMTP Relay): Gönderici sunucun, Gmail'in MX sunucusuyla iletişime geçer ve klasik SMTP diyaloğunu başlatır (EHLO, MAIL FROM, RCPT TO, DATA).
  4. Gelen Kutusuna Düşüş (IMAP): Gmail güvenlik kontrollerini yaptıktan sonra e-postayı kullanıcının kutusuna bırakır; kullanıcının telefonundaki mail uygulaması da IMAP protokolüyle bu mesajı ekranda gösterir.
· · ·

3. Gönderdiğin E-Postalar Neden Spam'e Düşer? (SPF, DKIM ve DMARC)

1982 yılında tasarlanan saf SMTP protokolünde hiçbir kimlik doğrulama yoktu; yani isteyen herkes kendi bilgisayarından MAIL FROM: <[email protected]> yazarak başkasının adına sahte e-posta gönderebiliyordu!

Bugün Gmail, Outlook ve Apple Mail; sahte e-postaları (Spoofing / Phishing) engellemek için alan adının DNS ayarlarında şu 3 güvenlik kaydını zorunlu tutar:

1. SPF (Sender Policy Framework)

Alan adının DNS ayarlarına eklediğin bir TXT kaydıdır. Dünyaya şunu ilan eder: "Benim @czay.dev alan adımdan sadece şu IP adresleri ve şu servisler (ör. AWS SES, Google Workspace) mail atabilir; bunun dışındaki sunuculardan gelen mailler sahtedir!"

2. DKIM (DomainKeys Identified Mail)

Sunucundan çıkan her e-postanın başlığına (DKIM-Signature), senin özel anahtarınla (Private Key) üretilmiş kriptografik bir dijital imza ekler. Alıcı sunucu (Gmail), senin DNS'teki açık anahtarını (Public Key) okuyarak bu imzayı doğrular ve e-postanın yolda değiştirilmediğinden emin olur.

3. DMARC (Domain-based Message Authentication, Reporting & Conformance)

Alıcı sunucuya şunu söyler: "Eğer benden geldiğini iddia eden bir e-posta SPF veya DKIM testinden geçemezse onu doğrudan çöpe at (p=reject) veya Spam kutusuna gönder (p=quarantine) ve bana raporla!"

Uyarı: Backend Mimari Kuralı: HTTP İsteği İçinde Senkron Mail Gönderme!

Bir SMTP sunucusuna bağlanıp mail göndermek ortalama 300ms ile 1.500ms arasında sürer. Kullanıcı "Kayıt Ol" veya "Sipariş Ver" butonuna bastığında, API uç noktasının içinde await sendEmail() diyerek kullanıcıyı bekletmek büyük bir mimari hatadır! Mail gönderim işini her zaman RabbitMQ veya BullMQ (Redis) gibi bir asenkron arka plan kuyruğuna (Background Job) bırak; API'n kullanıcıya 10 milisaniyede cevap dönsün, maili arka plandaki Worker göndersin.

· · ·

İlgili Kısa Video & Kaynaklar

İnteraktif Yol Haritası & Araç

Bunu da oku