SPF, DKIM ve DMARC Nedir, Nasıl Kurulur?
SPF, DKIM ve DMARC nedir, DNS kayıtları nasıl yazılır? Örnek kayıtlar, Gmail ve Outlook gönderici kuralları, test yöntemi ve sık yapılan hatalar.

Kısa cevap:
SPF, DKIM ve DMARC, alan adınızla gönderilen e-postaların gerçekten sizden geldiğini kanıtlayan üç DNS kaydıdır. SPF, alan adınız adına e-posta göndermeye yetkili sunucuları listeler; DKIM, her iletiye doğrulanabilir bir dijital imza ekler; DMARC ise bu kontroller başarısız olduğunda alıcı sunucunun ne yapacağını söyler ve size rapor gönderilmesini sağlar.
Neden artık zorunlu?
E-posta protokolü (SMTP), gönderenin kim olduğunu kendiliğinden doğrulamaz; herkes "From" satırına sizin alan adınızı yazabilir. Oltalama (phishing) saldırılarının büyük kısmı bu açığı kullanır. Bu yüzden büyük e-posta sağlayıcıları doğrulanmamış iletilere giderek daha az tolerans gösteriyor:
- Gmail (1 Şubat 2024'ten itibaren): Tüm gönderenlerden SPF veya DKIM, geçerli ileri ve ters DNS (PTR) kaydı ve TLS bekleniyor. Günde 5.000'den fazla ileti gönderenler için SPF, DKIM ve DMARC üçü birden zorunlu; DMARC politikası
p=noneolabilir, ama From alan adı SPF veya DKIM alan adıyla hizalı olmalı. - Outlook.com, Hotmail, Live (5 Mayıs 2025'ten itibaren): Günde 5.000'den fazla ileti gönderenler için SPF ve DKIM geçmeli, DMARC en az
p=noneolmalı ve hizalı olmalı. Uymayan iletiler önce Gereksiz klasörüne yönlendiriliyor.
Günde birkaç yüz e-posta gönderen bir şirket bu eşiklerin altında kalır, ama üç kaydın doğru kurulması gelen kutusuna ulaşma oranını küçük gönderenler için de doğrudan etkiler.
SPF nedir, nasıl kurulur?
SPF (Sender Policy Framework), alan adınız için yetkili gönderici sunucuları tanımlayan bir TXT kaydıdır. Alıcı sunucu, iletiyi gönderen IP adresinin bu listede olup olmadığına bakar. SPF, kullanıcının gördüğü "From" adresini değil, zarf göndericisini (MAIL FROM, iletide Return-Path olarak görünür) kontrol eder; bu ayrıntı DMARC bölümünde önem kazanır.
Örnek kayıt (alan adının kendisine, @ olarak eklenir):
ornek.com. TXT "v=spf1 ip4:203.0.113.10 include:_spf.saglayici.example ~all"
| Parça | Anlamı |
|---|---|
v=spf1 |
Kaydın SPF olduğunu belirtir, her zaman ilk sırada |
ip4:203.0.113.10 |
Bu IP adresi yetkili (kendi e-posta sunucunuz veya VDS'iniz) |
include:... |
Başka bir hizmetin SPF listesini dahil eder (e-posta sağlayıcınız, bülten servisi, CRM) |
~all |
Listede olmayanlar "softfail": şüpheli say, ama doğrudan reddetme |
-all |
Listede olmayanlar "fail": reddedilebilir |
Google Workspace kullanıyorsanız include:_spf.google.com, Microsoft 365 kullanıyorsanız include:spf.protection.outlook.com eklenir. Kendi sağlayıcınızın tam değerini paneldeki DNS bilgilerinden alın.
SPF kuralları:
- Alan adında tek bir SPF kaydı olur. İki ayrı
v=spf1kaydı varsa sonuç hata (permerror) olur ve SPF hiç çalışmaz. Yeni bir gönderici eklerken yeni kayıt açmayın, mevcut kaydainclude:ekleyin. - En fazla 10 DNS sorgusu.
include,a,mx,existsmekanizmaları veredirecther biri sorgu sayılır; iç içeinclude'lar da toplama girer. 10'u aşan kayıtpermerrorverir. ptrmekanizmasını kullanmayın. RFC 7208 bu mekanizmanın yayımlanmamasını önerir; yavaştır ve bazı alıcılar yok sayar.~allile başlayın, emin olunca-all'a geçin. Tüm göndericilerinizi listelediğinizden emin olmadan-allkullanırsanız unuttuğunuz bir servisin (ör. fatura programı) e-postaları reddedilebilir.- E-posta göndermeyen alan adları için
v=spf1 -allyazarak bu alan adı adına gönderimi tamamen kapatabilirsiniz.
DKIM nedir, nasıl kurulur?
DKIM (DomainKeys Identified Mail), giden her iletiye gizli bir anahtarla oluşturulmuş dijital imza ekler. Alıcı sunucu, imzayı alan adınızın DNS'inde yayımlanan açık anahtarla doğrular. İmza tutuyorsa ileti gönderildikten sonra değiştirilmemiştir ve gerçekten alan adınızın yetkili bir sunucusundan çıkmıştır.
DKIM kaydını siz yazmazsınız; anahtar çiftini e-posta sunucunuz veya sağlayıcınız üretir, size DNS'e eklenecek açık anahtarı verir. Kayıt bir seçici (selector) adıyla yayımlanır:
fz2026._domainkey.ornek.com. TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
| Parça | Anlamı |
|---|---|
fz2026 |
Seçici; aynı alan adında birden fazla anahtar kullanmanızı sağlar (her gönderici servis kendi seçicisini kullanır) |
_domainkey |
DKIM kayıtlarının sabit alt alanı |
v=DKIM1 |
Sürüm |
k=rsa |
Anahtar türü |
p=... |
Base64 biçiminde açık anahtar. Boş bırakılan p= anahtarın iptal edildiği anlamına gelir |
İletinin başlığındaki DKIM-Signature alanında d=ornek.com (imzalayan alan adı) ve s=fz2026 (seçici) görünür; alıcı sunucu bu iki değerle DNS'te doğru kaydı bulur.
DKIM için öneriler: 2048 bit RSA anahtar kullanın (Gmail en az 1024 bit istiyor, 2048 bit öneriyor). 2048 bitlik anahtar 255 karakteri aştığı için bazı DNS panelleri kaydı birden fazla metin parçasına böler; bu normaldir, ama tırnak işaretlerinin ve boşlukların bozulmadığını kontrol edin. Anahtarları belirli aralıklarla yeni bir seçiciyle değiştirin; eskisini, o anahtarla imzalanmış iletiler doğrulanmayı bitirene kadar kısa bir süre yayında tutun.
DMARC nedir, nasıl kurulur?
DMARC (Domain-based Message Authentication, Reporting and Conformance), SPF ve DKIM'in üzerine kurulan politikadır. İki şey yapar: doğrulama başarısız olursa iletiye ne olacağını söyler ve alıcı sunuculardan size rapor gönderilmesini ister.
DMARC'ın kritik kavramı hizalamadır (alignment). Bir iletinin DMARC'tan geçmesi için SPF veya DKIM'den en az birinin geçmesi ve geçen kontrolün alan adının kullanıcının gördüğü From alan adıyla eşleşmesi gerekir. Örneğin bülten servisiniz SPF'i kendi alan adıyla geçiyor ama From adresiniz ornek.com ise hizalama yoktur; o servis için DKIM'i ornek.com adına imzalayacak şekilde kurmanız gerekir.
DMARC kaydı _dmarc alt alanına eklenir. Kademeli geçiş önerilir:
1. Hafta 1–4, izleme:
_dmarc.ornek.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc-rapor@ornek.com"
2. Raporlar temizse, karantina:
_dmarc.ornek.com. TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc-rapor@ornek.com"
3. Son aşama, reddet:
_dmarc.ornek.com. TXT "v=DMARC1; p=reject; rua=mailto:dmarc-rapor@ornek.com"
| Etiket | Anlamı |
|---|---|
v=DMARC1 |
Sürüm, her zaman ilk etiket |
p= |
Politika: none (yalnız izle), quarantine (spam klasörüne), reject (reddet) |
rua= |
Günlük toplu raporların gideceği adres |
sp= |
Alt alan adları için ayrı politika (yazılmazsa p geçerli) |
adkim= / aspf= |
Hizalama sıkılığı: r (gevşek, varsayılan; alt alan adları eşleşir) veya s (sıkı) |
p=none aşamasında toplu raporları (XML) bir DMARC rapor aracıyla okuyun ve alan adınız adına gönderim yapan bütün kaynakları listeleyin. Listede tanımadığınız ama meşru bir servis (muhasebe programı, web sitenizin iletişim formu) varsa önce onu SPF ve DKIM'e ekleyin, sonra politikayı sıkılaştırın. Doğrudan p=reject ile başlamak, farkında olmadığınız meşru e-postaların engellenmesine yol açar.
Raporları başka bir alan adındaki adrese gönderecekseniz (ör. rua=mailto:rapor@raporlar.example), o alan adının ornek.com._report._dmarc.raporlar.example adında v=DMARC1 içeren bir TXT kaydıyla bu raporları kabul ettiğini beyan etmesi gerekir.
Üç kaydın karşılaştırması
| SPF | DKIM | DMARC | |
|---|---|---|---|
| Neyi doğrular? | Gönderen sunucunun IP adresini | İletinin imzasını (içerik değişmemiş mi) | SPF/DKIM sonucunun From adresiyle hizasını |
| DNS kaydının yeri | Alan adının kendisi (ornek.com) |
seçici._domainkey.ornek.com |
_dmarc.ornek.com |
| Kayıt türü | TXT | TXT (bazı sağlayıcılarda CNAME) | TXT |
| Kim üretir? | Siz, göndericilerinize göre | E-posta sunucunuz / sağlayıcınız | Siz |
| Yönlendirmede (forward) | Genellikle bozulur | İleti değişmediyse korunur | DKIM hizalıysa geçer |
| Başarısız olursa | Alıcı kendi kuralına göre karar verir | Alıcı kendi kuralına göre karar verir | Sizin politikanız uygulanır |
rDNS (PTR) kaydıyla ilişkisi
SPF, DKIM ve DMARC alan adı düzeyinde çalışır; PTR kaydı ise gönderici sunucunun IP adresi düzeyinde. Kendi e-posta sunucunuzu bir VDS veya fiziksel sunucuda çalıştırıyorsanız, sunucu IP'nizin PTR kaydı mail.ornek.com gibi anlamlı bir adı göstermeli ve bu adın A kaydı aynı IP'ye dönmelidir (ileri doğrulamalı ters DNS). Gmail bunu tüm gönderenlerden bekler. PTR kaydı DNS panelinizden değil, IP adresinin sahibi olan sağlayıcı tarafından tanımlanır; ayrıntılar: rDNS kaydı nedir, nasıl sorgulanır?.
Kayıtlarınızı nasıl test edersiniz?
- DNS'ten sorgulayın. Linux ve macOS'ta:
dig TXT ornek.com +short(SPF)dig TXT fz2026._domainkey.ornek.com +short(DKIM)dig TXT _dmarc.ornek.com +short(DMARC)
Windows'ta aynı sorgular için nslookup -type=txt _dmarc.ornek.com kullanılır.
2. Gerçek bir ileti gönderin. Bir Gmail adresine e-posta gönderip iletinin menüsünden "Orijinali göster"i açın; SPF, DKIM ve DMARC satırlarında PASS görmelisiniz. Diğer sağlayıcılarda iletinin başlığındaki Authentication-Results alanına bakın.
3. Raporları izleyin. DMARC toplu raporları ilk günlerde hangi kaynakların başarısız olduğunu gösterir.
Sık yapılan hatalar
- Alan adında iki SPF kaydı bulunması (yeni servis eklenirken ikinci kayıt açılması).
- SPF'te 10 DNS sorgusunun aşılması; çok sayıda
includeyerine kullanılmayan servisleri temizleyin. - Web sitesinin iletişim formu, fatura programı veya bülten servisi gibi "unutulan" göndericiler.
- DKIM anahtarının DNS paneline yapıştırılırken bölünmesi, eksik kopyalanması veya seçici adının yanlış yazılması.
- DMARC kaydının
_dmarcyerine alan adının kendisine eklenmesi. p=rejectile başlamak ve meşru e-postaların kaybolması.- Tüm kayıtlar doğru olduğu halde gönderici IP'nin PTR kaydının olmaması.
Sık sorulan sorular
SPF, DKIM ve DMARC'ın üçü de gerekli mi? Gmail ve Outlook'a günde 5.000'den fazla ileti gönderiyorsanız üçü de gerekir. Daha az gönderiyorsanız bile üçünü birlikte kurmak, spam klasörüne düşme riskini azaltır ve alan adınızın taklit edilmesini zorlaştırır.
~all mı, -all mı kullanmalıyım?
Tüm göndericilerinizi listelediğinizden emin değilseniz ~all ile başlayın. DMARC raporları bütün meşru kaynakların SPF'ten geçtiğini gösterdiğinde -all'a geçebilirsiniz.
DMARC kaydı e-postalarımı engeller mi?
p=none politikası hiçbir iletiyi engellemez, yalnızca rapor ister. Engelleme quarantine ve reject aşamalarında başlar; bu yüzden geçiş kademeli yapılır.
Kayıtları ekledikten sonra ne zaman etkinleşir? Yeni kayıt, DNS önbellek süresine (TTL) bağlı olarak genellikle birkaç dakika ile birkaç saat içinde görünür. Mevcut bir kaydı değiştirdiyseniz eski değer TTL süresi dolana kadar önbelleklerde kalabilir.
Yönlendirilen e-postalarda SPF neden başarısız oluyor? Yönlendiren sunucu iletiyi kendi IP adresinden yeniden gönderdiği için SPF tutmaz. İleti değiştirilmediyse DKIM imzası geçerli kalır ve DMARC DKIM üzerinden geçer; DKIM'i bu yüzden mutlaka kurun.
Mail hosting paketlerinde SPF, DKIM ve DMARC desteği ve spam filtresi standarttır; kayıtlar hazır gelir, DNS'iniz başka bir yerdeyse panelden kopyalayıp eklersiniz. Web siteniz de aynı yerde olsun istiyorsanız web hosting paketleri e-posta hesaplarını kapsar. Alan adınız yoksa: alan adı sorgula ve kaydet.


