SPF kaydınız geçerli olsa bile alıcı sunucular PermError: too many DNS lookups hatasıyla e-postalarınızı reddedebilir. Bu hata, RFC 7208'in belirlediği 10 DNS sorgu sınırını aşmanın kaçınılmaz sonucudur. Nedenini ve nasıl düzeltileceğini adım adım ele alıyoruz.
PermError döndürür ve e-postalar reddedilebilir. Çözüm: iç içe geçmiş include mekanizmalarını flatten ederek, kullanılmayan mekanizmaları kaldırarak ve gerekirse SPF makroları ya da üçüncü taraf SPF düzleştirme araçları kullanarak toplam sorgu sayısını 10'un altına düşürmektir.Sender Policy Framework (SPF), bir alan adı adına hangi IP adreslerinin e-posta gönderebileceğini tanımlayan bir e-posta kimlik doğrulama protokolüdür. RFC 7208 (Ocak 2014, IETF) bu protokolün teknik spesifikasyonunu belirler ve Bölüm 4.6.4'te açıkça şunu söyler: "SPF kaydını değerlendiren taraf, include, a, mx, ptr, exists mekanizmaları ve redirect değiştiricisi dahil olmak üzere toplam 10'dan fazla DNS sorgusu yapmamalıdır. Sınır aşılırsa sonuç PermError olmalıdır."
PermError, "kalıcı hata" anlamına gelir; geçici bir ağ sorunu değil, kayıt yapılandırmanızda kalıcı bir sorun olduğunu gösterir. Google Postmaster Tools ve Microsoft'un Exchange Online Posta Koruma (EOP) altyapısı dahil büyük alıcılar bu kurala sıkı biçimde uymaktadır.
SPF kaydındaki her mekanizma aynı DNS maliyetini taşımaz. Aşağıdaki tablo RFC 7208 Bölüm 5'e göre hangi mekanizmaların DNS sorgusu tükettiğini özetlemektedir:
| Mekanizma / Değiştirici | DNS Sorgusu Tüketir mi? | Açıklama |
|---|---|---|
include: |
Evet (özyinelemeli) | Başvurulan kaydın kendi mekanizmaları da sayılır. |
a |
Evet | Alan adının A/AAAA kaydını sorgular. |
mx |
Evet | MX kaydını ve MX hedeflerinin A/AAAA kayıtlarını sorgular. |
ptr |
Evet (RFC 7208 kullanımını önerir kaçınılsın) | Ters DNS sorgusu yapar; pahalı ve yavaştır. |
exists: |
Evet | Belirtilen alan adı için A kaydı sorgusu yapar. |
redirect= |
Evet | Hedef kaydın değerlendirilmesi için yeni bir sorgu zinciri başlatır. |
ip4: / ip6: |
Hayır | Doğrudan IP adresi; DNS sorgusu gerektirmez. |
all |
Hayır | Joker mekanizma; DNS sorgusu tüketmez. |
Modern e-posta altyapısı onlarca üçüncü taraf servisi bünyesinde barındırır: CRM araçları, pazarlama otomasyon platformları, destek yazılımları, ERP sistemleri ve daha fazlası. Her servis, kendi SPF kaydınıza bir include: satırı eklemenizi ister. Örneğin:
include:_spf.google.com — Google Workspace (kendi içinde birden fazla sorgu tüketir)include:sendgrid.net — SendGridinclude:spf.protection.outlook.com — Microsoft 365include:amazonses.com — Amazon SESinclude:_spf.salesforce.com — Salesforceinclude:connect365.com.tr — Connect365 gibi toplu posta platformlarıBu örnekte henüz 6 include direktifi var; ancak her birinin kendi iç kayıtlarında ek sorgular yaptığını hesaba kattığınızda toplam kolaylıkla 15-20 sınırına dayanır.
Aşağıdaki ücretsiz araçlar SPF kaydınızdaki toplam DNS sorgu sayısını gerçek zamanlı analiz eder:
mxtoolbox.com/spf.aspx): Her mekanizma için sorgu sayısını ayrı ayrı gösterir.include zincirlerini görselleştirir.dig TXT alanadiniz.com komutuyla ham SPF kaydını görüntüleyebilirsiniz.Terminal üzerinden hızlı bir kontrol için:
dig +short TXT alanadiniz.com | grep "v=spf1"
Bu komut mevcut SPF kaydınızı döndürür. Ardından her include hedefini özyinelemeli olarak sorgulayarak toplam sayıyı elle de hesaplayabilirsiniz; ancak yukarıdaki araçlar bunu otomatik yapar.
En hızlı kazanım, artık kullanmadığınız servisler için eklediğiniz include satırlarını kaldırmaktır. E-posta gönderme altyapınızı envantere alın: hangi servisler gerçekten alan adınız üzerinden e-posta gönderiyor? Kullanılmayan SaaS entegrasyonları, eski ESP (E-posta Servis Sağlayıcısı) kalıntıları ve test ortamı kayıtları bu kategoriye girer.
Bir include mekanizmasının arkasındaki nihai IP aralığı sabitse, DNS sorgusu tüketen mekanizma yerine doğrudan ip4: veya ip6: bloğu kullanabilirsiniz. Örneğin bazı küçük ESP'lerin include kaydı tek bir /24 bloğuna işaret ediyorsa:
# Öncesi (1 DNS sorgusu tüketir)
include:mail.example-esp.com
# Sonrası (0 DNS sorgusu tüketir)
ip4:203.0.113.0/24
Uyarı: ESP, IP aralığını değiştirirse kaydınızı manuel güncellemeniz gerekir. Bu yöntemi yalnızca IP aralıklarını nadiren değiştiren servisler için tercih edin.
SPF düzleştirme, tüm iç içe include zincirlerini otomatik olarak çözerek yalnızca nihai IP adreslerini içeren tek bir SPF kaydı üretir. AutoSPF, PowerSPF ve dmarcian gibi araçlar bu işlemi yönetilen bir DNS servisi olarak sunar: DNS sorgularınızı kendi altyapıları üzerinden proxy'leyerek görünür sorgu sayısını 1-3 arasında tutar.
Bu çözümün dezavantajı, nihai SPF kararının üçüncü taraf bir servise bağımlı hale gelmesidir. Servis kesintisi yaşanırsa SPF doğrulaması da etkilenir.
RFC 7208 Bölüm 7, %{d}, %{i}, %{s} gibi makro değişkenleri tanımlar. exists mekanizmasıyla makrolar birleştirilerek tek bir DNS sorgusuyla çok sayıda IP kontrolü yapılabilir. Bu yöntem ileri düzey yapılandırma gerektirir ve genellikle büyük ölçekli e-posta altyapılarında tercih edilir.
Pazarlama e-postalarını bilgi@haber.alanadiniz.com, destek yazışmalarını destek@alanadiniz.com gibi farklı alt alan adları üzerinden göndermek, her alt alan adına ayrı ve daha az mekanizma içeren bir SPF kaydı atamanıza olanak tanır. Bu yaklaşım hem SPF hem de DMARC (RFC 7489) yönetimini basitleştirir.
SPF kaydını güncellendikten sonra DNS TTL süresi dolmadan değişiklikler yayılmaz. TTL süreniz 3600 saniye (1 saat) ise güncellemeden 1 saat sonra test yapın. Doğrulama için:
Authentication-Results başlığında spf=pass yazdığını kontrol edin.DMARC raporlarını (RFC 7489 kapsamında) etkinleştirdiyseniz, rua adresine gelen XML raporlarda spf alanındaki result değerini de izleyin.
PermError, SPF kaydının değerlendirilemediği anlamına gelir; bu kalıcı bir yapılandırma hatasıdır. SoftFail (~all) ise kaydın başarıyla değerlendirildiği ancak gönderici IP'nin yetkili olmadığı anlamına gelir. PermError durumunda alıcı sunucu, SPF'nin herhangi bir sonucunu kullanamaz; bu durum DMARC başarısızlığına da yol açabilir.
RFC 7208 bu sınırı tasarlarken iki kaygıyı dengelemiştir: alıcı sunuculardaki DNS yükünü sınırlamak ve sonsuz özyineleme riskini (SPF döngülerini) önlemek. 2014'te bu sınır makul görünüyordu; bugün bulut servislerin çoğalmasıyla yetersiz kalmaktadır. IETF, bu sınırın artırılması için çeşitli tartışmalar yürütmüş ancak RFC 7208'in yerini alacak yeni bir standart henüz yayımlanmamıştır.
include:_spf.google.com doğrudan birkaç alt kayda dallanır ve bu dalların bazıları kendi içinde ek sorgular yapar. Gerçek sayı Google'ın altyapı yapısına bağlıdır ve zaman içinde değişebilir; dolayısıyla MXToolbox gibi bir araçla güncel sayıyı doğrulamak en güvenilir yöntemdir.
RFC 7208 Bölüm 5.5, ptr mekanizmasının kullanımını açıkça önermez ("do not use"). Ters DNS (PTR) sorguları yavaştır, güvenilmez olabilir ve aynı IP bloğunu paylaşan kötü aktörlerin spoofing saldırısına kapı aralayabilir. Ek olarak birden fazla DNS sorgusu tüketir.
Güvenilir satıcıların araçları teknik olarak çalışmaktadır; ancak SPF kararını üçüncü taraf altyapısına bağımlı kılmak operasyonel bir risk içerir. Satıcı kesintiye uğrarsa veya hizmetini sonlandırırsa SPF doğrulamanız bozulabilir. SLA'ları ve uptime taahhütlerini dikkatlice değerlendirin.
RFC 7208 Bölüm 3.2, bir alan adının yalnızca tek bir SPF TXT kaydına sahip olması gerektiğini belirtir. Birden fazla v=spf1 kaydı tespit edilirse sonuç PermError'dur. DNS yönetim panelinizde yinelenen kayıtları kontrol edin ve birleştirin.
Sorgu sayısını test ettiğiniz araç, kaydı sizin bakış açınızdan değerlendiriyor olabilir. Alıcı sunucular farklı DNS çözümleyicileri kullanır ve bazı include hedefleri zamanla yeni alt mekanizmalar ekleyerek sayıyı artırmış olabilir. Google Admin Toolbox ile alıcı perspektifinden test yapın ve sayıyı 7-8'de tutmayı hedefleyin; bu tampon, olası değişikliklere karşı sizi korur.
DMARC (RFC 7489), SPF ve DKIM doğrulama sonuçlarını kullanır. SPF PermError döndürdüğünde, DMARC SPF hizalamasını "geçemedi" (fail) olarak değerlendirir. Politikanız p=quarantine veya p=reject ise bu durum e-postalarınızın karantinaya alınmasına veya reddedilmesine yol açar. DKIM bağımsız çalıştığından, DKIM doğru yapılandırılmışsa DMARC hizalaması yine de geçebilir; ancak SPF sorununu mutlaka çözmeniz önerilir.
DNS TTL (Time to Live) değerinize bağlıdır. Çoğu kayıt 1-4 saat TTL ile yapılandırılmıştır; büyük değişiklikler öncesinde TTL'yi geçici olarak 300 saniyeye (5 dakika) indirirseniz değişiklikler çok daha hızlı yayılır. Değişiklik sonrasında TTL'yi tekrar normal seviyeye getirin.
Connect365 hesabınıza eklediğiniz gönderici alan adı için, platform size bir include direktifi sağlar. Bu direktifi mevcut SPF kaydınıza ekleyin ve toplam sorgu sayısının 10'u aşmadığını doğrulayın. Eğer aşıyorsa yukarıda açıklanan düzleştirme veya temizleme adımlarını uygulayın. DKIM imzalama da aktif olduğundan, SPF sorunu yaşansa bile DKIM üzerinden DMARC hizalaması sağlanabilir; ancak her iki mekanizmanın da düzgün çalışması teslim edilebilirliği en üst düzeye taşır.
Reklamsız, KVKK uyumlu; kurulum ve geçiş ücretsiz, mailleri biz taşırız.
Kurulum + migrasyon ücretsiz. KVKK uyumlu, Türkiye'de barındırma. 7/24 Türkçe destek.
Kampanya 30 Haziran'a kadar geçerlidir.