SPF (Sender Policy Framework), alan adınız adına hangi sunucuların e-posta gönderebileceğini listeleyen bir TXT kaydıdır. Alıcı sunucu, gönderen IP adresinin bu listede olup olmadığını kontrol eder.
Basit bir SPF kaydı
v=spf1 a mx include:_spf.google.com -all
Bu kayıt şunu söyler: alan adının A kaydındaki sunucu, MX kayıtlarındaki sunucular ve Google Workspace sunucuları gönderim yapabilir; başka hiç kimse yapamaz.
En sinsi hata: 10 DNS sorgusu sınırı
RFC 7208, SPF değerlendirilirken en fazla 10 DNS sorgusu yapılmasına izin verir. Şu mekanizmaların her biri bir sorgu harcar: include, a, mx, ptr, exists, redirect.
Önemli olan nokta şudur: bu sayı iç içe geçen include zincirlerini de kapsar. Kaydınızda üç include görünüyor olabilir, ancak bunların içindeki include'lar da sayılır. Toplam 10'u aşarsa alıcı sunucu sonucu "permerror" kabul eder ve SPF doğrulaması tamamen başarısız olur.
Bu hata sessizdir: kaydınız görünürde doğrudur, kimse size hata mesajı göndermez, ancak e-postalarınız spam klasörüne düşmeye başlar. Sorgulama aracımız include zincirini gerçekten çözerek toplam sayıyı hesaplar.
Sınırı aşarsanız ne yapmalı?
- Artık kullanmadığınız servislerin include kayıtlarını silin. En yaygın çözüm budur.
- Sabit IP adresi olan servisleri
ip4:ile doğrudan yazın (SPF flattening). Sağlayıcı IP değiştirirse kaydı güncellemeniz gerekeceğini unutmayın. - Alt alan adlarını ayırın: pazarlama e-postalarını
mail.ornek.comgibi ayrı bir alan adından gönderin.
-all mı ~all mı?
-all (hardfail) listelenmeyen sunuculardan gelen iletilerin reddedilmesini ister. ~all (softfail) yalnızca işaretlenmesini söyler. Yeni kurulumda ~all ile başlayıp, tüm gönderim kaynaklarınızı doğruladıktan sonra -all seviyesine geçmek doğru yaklaşımdır.
+all ise felakettir: internetteki herkesin alan adınız adına e-posta göndermesine izin verir.
Birden fazla SPF kaydı
Bir alan adında yalnızca bir SPF kaydı bulunmalıdır. İkinci bir kayıt eklendiğinde doğrulama permerror ile sonuçlanır ve SPF hiç yokmuş gibi davranılır. Yeni bir servis eklerken mevcut kaydın içine include ekleyin, yeni kayıt oluşturmayın.