SPF, DKIM ve DMARC Kaydı Nasıl Oluşturulur? Adım Adım Kurulum

Kurumsal mailleriniz spama düşüyorsa SPF, DKIM ve DMARC kayıtlarını nasıl oluşturacağınızı, nasıl test edeceğinizi ve Gmail ile Outlook'un bugünkü şartlarını anlattım.

SPF, DKIM ve DMARC Kaydı Nasıl Oluşturulur? Adım Adım Kurulum
Kısa cevap

SPF, DKIM ve DMARC kaydı nasıl oluşturulur?

Üçü de alan adının DNS'ine ekleniyor: SPF ve DMARC TXT kaydı olarak, DKIM çoğunlukla TXT, bazı hizmetlerde CNAME olarak. SPF kök ada tek kayıt olarak yazılıyor ve mail gönderebilen sunucuları listeliyor. DKIM anahtarını mail sisteminiz üretiyor, siz seçici._domainkey adıyla DNS'e koyuyorsunuz. DMARC _dmarc adına ekleniyor; önce p=none ile raporlar toplanıyor, sonra quarantine ve reject'e geçiliyor.

Gönderdiğiniz kurumsal mailler karşı tarafta spama düşüyorsa ilk bakacağım yer alan adınızın DNS ayarlarındaki üç kayıt: SPF, DKIM ve DMARC. SPF hangi sunucuların sizin adınıza mail gönderebileceğini söylüyor, DKIM her maile doğrulanabilir bir imza atıyor, DMARC ise bu iki kontrolden geçemeyen maile ne yapılacağını belirliyor. Google 1 Şubat 2024'ten beri Gmail'e mail gönderen herkesten en az SPF ya da DKIM istiyor; günde 5.000 ve üzeri gönderenlerden üçünü birden. Bu yazıda üç kaydı nasıl oluşturduğumu, nasıl test ettiğimi ve en sık yapılan hataları kendi alan adımdaki gerçek kayıtlar üzerinden anlatıyorum.

Üç kaydın ne olduğunu kısaca merak ediyorsanız SPF, DKIM ve DMARC sözlük maddesi iyi bir başlangıç. Bu yazı işin uygulama tarafı: Kayıt nereye, hangi yazımla eklenir ve doğru çalıştığı nasıl anlaşılır.

Kayıtları yazmadan önce: Mailinizi hangi sistemler gönderiyor?

SPF ve DKIM'i doğru kurmanın ön şartı, alan adınız adına mail gönderen her sistemi bilmek. Çoğu işletmede bu liste sanıldığından uzun:

  • Mail sunucunuz ya da hizmetiniz (hosting paneli, Google Workspace, Microsoft 365 gibi)
  • Web sitenizdeki iletişim ve teklif formları
  • Bülten ya da kampanya aracı
  • Fatura, muhasebe ya da müşteri yönetimi yazılımı

Listede unutulan her sistem, gönderdiği maillerin kimlik doğrulamasından kalmasına yol açıyor. Kayıtlar çoğunlukla TXT kaydı olarak alan adınızın DNS panelinde duruyor; gelen postanın hangi sunucuya gideceğini belirleyen MX kaydıyla karıştırmayın, o başka bir iş yapıyor.

SPF kaydı nasıl oluşturulur?

SPF kaydı, alan adınızın kök adına (panelde genellikle @ ile gösterilir) eklenen tek bir TXT kaydı. Kendi alan adımdaki kayıt şöyle:

v=spf1 mx ip4:[sunucu IP adresi] -all

Parça parça okuyalım:

  • v=spf1: Bunun bir SPF kaydı olduğunu söylüyor, her kayıt bununla başlıyor.
  • mx: Alan adının MX kaydında yazan sunucular mail gönderebilir.
  • ip4:...: Bu IP adresi mail gönderebilir. Benim sitem ve mail sunucum aynı makinede olduğu için formlardan giden mailler de bu adresten çıkıyor.
  • -all: Listede olmayan sunucular bu alan adı adına mail göndermeye yetkili değil; alıcı sunucu bu mailleri reddedebilir.

Mailinizi bir hizmet gönderiyorsa, o hizmetin belgesinde verdiği include: ifadesini eklersiniz. Örneğin Google Workspace için include:_spf.google.com, Microsoft 365 için include:spf.protection.outlook.com. Doğru değeri her zaman kullandığınız hizmetin kendi belgesinden alın.

Kaydın sonundaki -all ile ~all arasındaki fark şu: -all listede olmayan sunucunun kesinlikle yetkisiz olduğunu, ~all ise şüpheli sayılması gerektiğini söylüyor. Gönderen sistemlerin tam listesinden emin olmadan -all'a geçmeyin; unutulan bir sistem varsa onun mailleri reddedilebilir.

SPF hatası 1: İki ayrı kayıt

Yeni bir hizmet eklerken ikinci bir v=spf1 kaydı açmak çok sık yapılan bir hata. SPF'in standardı olan RFC 7208, bir alan adında birden fazla SPF kaydı olmasına izin vermiyor; iki kayıt varsa sonuç hata oluyor ve SPF hiç çalışmıyor. Doğrusu, yeni include: ifadesini mevcut kaydın içine eklemek.

SPF hatası 2: 10 DNS sorgusu sınırı

SPF standardı, SPF kontrolünde yapılabilecek DNS sorgusunu 10 ile sınırlıyor. Her include, a ve mx bu sayıya giriyor ve dâhil edilen kayıtların kendi içindeki ifadeler de sayılıyor. Beş altı ayrı hizmet ekleyen kayıtlar bu sınırı kolayca aşıyor ve SPF sessizce hata vermeye başlıyor.

DKIM kaydı nasıl oluşturulur?

DKIM'de kaydı siz yazmıyorsunuz, mail sisteminiz üretiyor. Mail sunucunuz ya da hizmetiniz bir anahtar çifti oluşturuyor: Özel anahtarla gönderdiği her maili imzalıyor, açık anahtarı ise DNS'e koymanızı istiyor. Alıcı sunucu imzayı DNS'teki açık anahtarla kontrol ediyor.

  1. Mail hizmetinizin yönetim panelinde DKIM ayarını bulun ve anahtarı oluşturun.
  2. Panelin verdiği kayıt adını ve değerini, panel hangi türü istiyorsa o türde DNS'e ekleyin (çoğunlukla TXT, Microsoft 365 gibi bazı hizmetlerde CNAME). Kayıt adı seçici._domainkey biçiminde oluyor.
  3. DNS kaydı yayıldıktan sonra panele dönüp imzalamayı başlatın.

Benim alan adımda seçici mail, yani kayıt mail._domainkey adında duruyor ve şöyle başlıyor:

v=DKIM1; k=rsa; p=MIIBIjANBgkqh...

Seçici, aynı alan adında birden fazla DKIM anahtarı tutabilmenizi sağlıyor. Mail sunucunuz bir seçici, bülten aracınız başka bir seçici kullanabilir; ikisi birbirini bozmuyor. Bir uyarı: Bazı DNS panelleri uzun anahtarı tek parça kabul etmiyor ve değerin 255 karakterlik parçalara bölünmesini istiyor. Paneliniz bunu kendisi yapıyorsa elle bölmeyin.

DMARC kaydı nasıl oluşturulur?

DMARC kaydı _dmarc adına eklenen bir TXT kaydı. Kendi alan adımdaki kayıt:

v=DMARC1; p=reject; rua=mailto:[rapor adresi]; adkim=r; aspf=r; pct=100
EtiketNe yaparBenim değerim
pKontrolden geçemeyen maile ne yapılacağı: none (bir şey yapma), quarantine (spama at), reject (reddet)reject
ruaAlıcı sunucuların toplu raporları göndereceği adreskendi adresim
adkim / aspfDKIM ve SPF alan adının gönderen adresiyle ne kadar sıkı eşleşeceği: r (esnek), s (katı)r
pctPolitikanın maillerin yüzde kaçına uygulanacağı100

DMARC'ın asıl yaptığı iş hizalama kontrolü. Mailin "Kimden" satırındaki alan adı, SPF'ten ya da DKIM'den geçen alan adıyla eşleşmeli. Google da Gmail hesaplarına günde 5.000 ve üzeri mail gönderenler için bunu şart olarak yazıyor: "Kimden" üst bilgisindeki alan, SPF alanıyla veya DKIM alanıyla uyumlu olmalı.

DMARC'ı hangi sırayla sıkılaştırmalı?

Doğrudan p=reject ile başlamıyorum. Benim sıram şu:

  1. p=none ve rua: Hiçbir maili etkilemeden raporları toplamaya başlayın. Raporlar, adınıza mail gönderen ve sizin unuttuğunuz sistemleri ortaya çıkarıyor.
  2. p=quarantine: Raporlarda yalnız kendi sistemleriniz göründüğünde ve hepsi kontrolden geçtiğinde, kontrolden kalan mailin spama gitmesine izin verin. Emin değilseniz pct ile önce küçük bir yüzdeye uygulayın.
  3. p=reject: Bir süre sorun çıkmazsa reddetmeye geçin. Bu aşamada alan adınız adına sahte mail göndermek büyük ölçüde işe yaramaz hâle geliyor.

Kayıtların doğru çalıştığı nasıl test edilir?

Gmail'de "Orijinali göster"

Kendi alan adınızdan bir Gmail adresine mail gönderin, gelen mailde üç nokta menüsünden Orijinali göster seçeneğini açın. Sayfanın üstünde SPF, DKIM ve DMARC için ayrı ayrı PASS ya da FAIL yazıyor. Üçü PASS değilse sorun hangi satırdaysa oradan başlayın.

DNS'i komut satırından okumak

Kaydın DNS'te gerçekten yayında olup olmadığını görmek için Windows'ta komut isteminde şu komutlar yeterli:

nslookup -type=TXT alanadiniz.com
nslookup -type=TXT _dmarc.alanadiniz.com
nslookup -type=TXT mail._domainkey.alanadiniz.com

Son satırdaki mail, sizin DKIM seçicinizle değiştirilmeli. İlk komutun çıktısında birden fazla v=spf1 görüyorsanız yukarıdaki birinci SPF hatası sizde de var demektir.

Test servisleri ve DMARC raporları

"Mail tester" diye aratınca çıkan test servisleri, onlara gönderdiğiniz bir maili inceleyip SPF, DKIM, DMARC ve içerik tarafındaki sorunları tek raporda gösteriyor. Uzun vadede daha değerli olan ise DMARC'ın rua adresine gelen raporlar: Hangi sunucunun adınıza mail gönderdiğini ve kontrollerden geçip geçmediğini gün gün gösteriyorlar.

Gmail ve Outlook bugün ne istiyor?

AlıcıKimi kapsıyorNe istiyor
GmailGmail hesaplarına mail gönderen herkes (1 Şubat 2024'ten beri)SPF veya DKIM; geçerli ileri ve ters DNS (PTR) kaydı; TLS bağlantısı; Postmaster Tools'ta spam oranı %0,3'ün altında
GmailGmail hesaplarına günde 5.000 ve üzeri mail gönderenlerSPF ve DKIM ve DMARC (politika none olabilir); "Kimden" alanının SPF ya da DKIM ile hizalanması; pazarlama maillerinde tek tıkla abonelikten çıkma
Outlook.com (hotmail, live, outlook)Günde 5.000'den fazla mail gönderen alan adlarıSPF ve DKIM geçmeli; DMARC en az p=none ve SPF ya da DKIM ile hizalı

Microsoft'un kararı ayrıca dikkat istiyor. 29 Nisan 2025'te yaptığı güncellemeye göre 5 Mayıs 2025'ten itibaren bu şartları karşılamayan mailleri reddediyor ve gönderene şu hatayı döndürüyor: 550; 5.7.515 Access denied, sending domain [SendingDomain] does not meet the required authentication level. Bu metni bir geri dönen mailde görüyorsanız sorun içerikte değil, kimlik doğrulamada.

Günde 5.000'in altında mı gönderiyorsunuz? Kurallar size DMARC'ı zorunlu tutmuyor. Ben yine de her alan adına kuruyorum, çünkü DMARC yalnız teslim oranını değil, adınızla gönderilen sahte maillere karşı markanızı da koruyor.

Kayıtlar tamam ama mail hâlâ spama düşüyorsa ne yapmalı?

Üç kaydı doğru kurmak teslim edilebilirliğin ön şartı, tamamı değil. Kayıtlar PASS verdiği hâlde sorun sürüyorsa şunlara bakıyorum:

  • Ters DNS (PTR) kaydı: Google, gönderen IP'nin geçerli bir ters DNS kaydı olmasını tüm gönderenlerden istiyor. Kendi sunucusundan mail gönderenlerde en sık eksik kalan ayar bu.
  • Form maillerinde "Kimden" adresi: İletişim formunun gönderdiği maili ziyaretçinin kendi adresinden, örneğin bir Gmail adresinden gönderiyormuş gibi ayarlamak klasik bir hata. Google, "Kimden" satırında başka bir Gmail adresinin kimliğine bürünen mailler için DMARC karantina politikası uygulayacağını yazıyor. Form, maili kendi alan adınızdaki bir adresten göndermeli, ziyaretçinin adresi "Yanıtla" alanına yazılmalı.
  • Spam şikâyetleri: Alıcıların sizi spam olarak işaretleme oranı Gmail için %0,3'ün altında kalmalı. İzin almadan liste oluşturmak bu oranı en hızlı bozan şey.
  • Gönderim hacmindeki ani sıçrama: Hiç kullanılmamış bir adresten bir anda yüzlerce mail göndermek, kayıtlar doğru olsa bile şüphe çekiyor.

Telefonda ya da bilgisayarda mail hesabını kurarken takıldığınız yer SPF değil de sunucu ayarlarıysa telefona şirket maili kurma ve Outlook'ta kurumsal mail kurulumu rehberlerime bakın. Alan adınızın mail ayarlarını baştan birlikte kurmak isterseniz kurumsal e-posta sayfasında bütün adımları topladım.

Sık Sorulan Sorular

SPF kaydı olmadan mail gönderilebilir mi?

Teknik olarak gönderilebiliyor ama teslim edilmesi zorlaşıyor. Google 1 Şubat 2024'ten beri Gmail'e mail gönderen herkesin en az SPF ya da DKIM kurmuş olmasını şart koşuyor. İkisi de yoksa mailleriniz sınırlanabilir, reddedilebilir ya da spam olarak işaretlenebilir.

DMARC'ı p=none ile bırakmak işe yarar mı?

Rapor toplamaya ve Gmail ile Outlook'un toplu gönderici şartını karşılamaya yarıyor, çünkü ikisi de none politikasını kabul ediyor. Ama none politikası sahte maili durdurmuyor; alıcıya yalnız "Kontrol et ve raporla." diyor. Koruma için zamanla quarantine ya da reject'e geçmek gerekiyor.

Alan adımda iki SPF kaydı var, sorun olur mu?

Olur. SPF standardı birden fazla kayda izin vermiyor ve iki kayıt varsa SPF kontrolü hata veriyor. İki kaydın içindeki ifadeleri tek bir v=spf1 kaydında birleştirin ve eskisini silin.

DKIM seçicisi nedir, nereden öğrenirim?

Seçici, DKIM anahtarının DNS'te hangi adla durduğunu belirten etiket; kayıt adı seçici._domainkey.alanadiniz.com biçiminde oluyor. Hangi seçiciyi kullandığınızı mail hizmetinizin DKIM ayar ekranı gösteriyor. Gmail'deki "Orijinali göster" sayfasında imzanın içindeki s= değeri de seçiciyi söylüyor.

Kayıtları ekledim, ne zaman devreye girer?

DNS değişikliklerinin yayılma süresi kaydın TTL değerine ve alıcı sunucuların önbelleğine bağlı. Değişikliği yaptıktan sonra yukarıdaki nslookup komutlarıyla kaydın göründüğünü kontrol edin, sonra test maili gönderin.

Faydalı Kaynaklar

Ücretsiz ön inceleme

Peki sizin siteniz ne durumda?

Okuduklarınızın sitenizde karşılığı var mı, birlikte bakalım. İnceleyip bulguları yazılı olarak paylaşalım.