Tüm sistemler operasyonel
Connect365
Sorun Giderme· 10 Haziran 2026

"SPF Softfail" ile "SPF Hardfail" Arasındaki Fark

"SPF Softfail" ile "SPF Hardfail" Arasındaki Fark

E-posta altyapınızda SPF kaydı tanımlamak artık bir tercih değil, bir zorunluluk. Ancak SPF kaydının sonunda yer alan ~all ile -all direktifleri arasındaki fark, teslim edilebilirlik, kimlik avı koruması ve DMARC uyumu açısından kritik sonuçlar doğurur. Bu yazıda iki direktifin teknik farklarını, RFC 7208 çerçevesinde nasıl işlendiğini ve hangi koşulda hangisinin tercih edilmesi gerektiğini ele alıyoruz.

TL;DR: ~all (softfail) yetkisiz göndericileri işaretler ama teslim eder; -all (hardfail) yetkisiz göndericileri reddeder. DMARC ile birlikte kullanıldığında her ikisi de politika kapsamına girer, ancak üretim ortamında -all çok daha güçlü bir kimlik avı koruması sağlar.

SPF Nedir ve Neden Önemlidir?

Sender Policy Framework (SPF), RFC 7208 ile standartlaştırılmış, alan adı sahiplerinin hangi IP adreslerinin kendi adlarına e-posta gönderebileceğini DNS TXT kaydı aracılığıyla bildirdiği bir e-posta kimlik doğrulama protokolüdür. Alıcı posta sunucusu, gelen bir iletinin zarfındaki MAIL FROM adresi (RFC 5321 terminolojisiyle "return-path") ile DNS'teki SPF kaydını karşılaştırarak doğrulama yapar.

SPF kaydı, meşru göndericileri listeleyen çeşitli mekanizmalar (ip4, ip6, include, a, mx vb.) içerir ve bir "all" direktifiyle sonlandırılır. Bu son direktif, kayıtta listelenmeyen tüm göndericiler için ne yapılacağını tanımlar.

SPF Sonuç Durumları: RFC 7208 Perspektifi

RFC 7208, Bölüm 8'de SPF değerlendirmesinin üretebileceği sonuçları tanımlar. Bu sonuçlar arasında en sık karıştırılan ikisi Softfail ve Fail (Hardfail) durumlarıdır:

Direktif SPF Sonucu Received-SPF Başlığı Tipik Alıcı Davranışı DMARC Uyumu
~all Softfail softfail Teslim et, spam olarak işaretle veya şüpheli başlık ekle Evet — DMARC politikası devreye girer
-all Fail (Hardfail) fail Reddet veya spam klasörüne gönder Evet — DMARC politikası devreye girer
?all Neutral neutral SPF olmamış gibi davran Kısmi — zayıf koruma
+all Pass pass Herkese izin ver (güvensiz, önerilmez) Anlamsız — tüm göndericiler geçer

Softfail (~all) Ayrıntılı İnceleme

Softfail, RFC 7208 Bölüm 8.5'te şöyle tanımlanır: "Etki alanı sahibi, IP adresinin yetkili olmadığını düşünür, ancak bu sonucu ilke ihlali olarak ele almak için yetersiz güven duyuyor." Bu tanım, softfail'in ne zaman kullanılması gerektiğine dair en önemli ipucunu içerir: geçiş dönemi ve test aşaması.

Softfail durumunda alıcı sunucu teknik olarak iletiyi reddermek zorunda değildir. Gmail, Microsoft 365 ve diğer büyük sağlayıcılar genellikle softfail alan iletileri spam klasörüne yönlendirir ya da X-Spam-Status başlığına puan ekler. Ancak bu davranış garantili değildir; bazı sunucular softfail iletilerini doğrudan gelen kutusuna iletebilir.

Öte yandan Google Postmaster Tools verileri, ~all kullanan alan adlarından gelen kimlik avı e-postalarının önemli bir bölümünün teslimata ulaştığını göstermektedir. Bu durum, softfail'in uzun vadeli bir güvenlik politikası olarak kullanılmaması gerektiğinin somut kanıtıdır.

Hardfail (-all) Ayrıntılı İnceleme

Hardfail, RFC 7208 Bölüm 8.4'te "etki alanı sahibi, IP adresinin ilgili kimliği göndermek için yetkili olmadığını kesinlikle ifade ediyor" biçiminde tanımlanır. -all direktifi, kayıtta yer almayan her gönderici IP adresinin sahte (spoofed) olduğunu açıkça beyan eder.

Alıcı sunucu, hardfail alan bir iletiyi SMTP düzeyinde reddedebilir (550 5.7.1 hatası) veya spam klasörüne yönlendirebilir. Microsoft 365 belgelerine göre Exchange Online Protection (EOP), SPF hardfail durumunu yüksek güven skorlu spam sinyali olarak değerlendirir ve iletiyi BCL:9 puanıyla işaretleyebilir.

DMARC ile Etkileşim: Kritik Fark Burada Ortaya Çıkıyor

SPF'nin tek başına çok sınırlı bir yaptırım gücü vardır çünkü her alıcı sunucu softfail veya hardfail sonucunu farklı yorumlayabilir. Gerçek yaptırım gücü, RFC 7489 ile standartlaştırılan DMARC (Domain-based Message Authentication, Reporting, and Conformance) ile birleştiğinde ortaya çıkar.

DMARC, SPF ve DKIM sonuçlarını "identifier alignment" kuralıyla değerlendirir: MAIL FROM alanındaki alan adı ile From: başlığındaki alan adı örtüşüyorsa ve SPF pass döndürüyorsa, DMARC uyumu sağlanmış sayılır. Softfail (~all) bir SPF sonucu, DMARC açısından fail anlamına gelir; hardfail (-all) da aynı şekilde DMARC fail'e yol açar.

Bu noktada kritik soru şudur: DMARC politikanız p=reject ise, gelen ileti zaten reddedilir. Dolayısıyla DMARC kullanan alan adları için ~all ile -all arasındaki pratik fark azalır. Ancak DMARC'ı henüz devreye almamış alan adları için -all çok daha güçlü bir ilk savunma hattı oluşturur.

SPF Lookup Sınırı: 10 DNS Sorgusu Kuralı

RFC 7208, Bölüm 4.6.4 gereğince bir SPF kaydının değerlendirilmesi sırasında yapılabilecek maksimum DNS araması sayısı 10 ile sınırlıdır. include, a, mx ve redirect mekanizmalarının her biri bu sayacı tüketir. 10 sınırı aşıldığında SPF sonucu otomatik olarak PermError döner; bu durumda hem softfail hem de hardfail direktifinin önemi kalmaz çünkü kayıt hiç değerlendirilemez.

MXToolbox, dmarcian veya EasyDMARC gibi araçlarla periyodik SPF analizi yapmak, lookup sayısını kontrol altında tutmanın en pratik yoludur.

Hangi Direktifi Kullanmalısınız?

Direktif seçimi, alan adının e-posta altyapısının olgunluk düzeyine ve risk toleransına bağlıdır:

Gerçek Dünya Senaryosu: Hata Ayıklama

Bir müşterinin posta sunucusu gelen bir iletide aşağıdaki Authentication-Results başlığını üretiyorsa:

Authentication-Results: mx.example.com;
  spf=softfail (domain of sender@ornek.com does not designate 203.0.113.45 as permitted sender)
    smtp.mailfrom=sender@ornek.com

Bu başlık, gönderen IP adresinin (203.0.113.45) ornek.com'un SPF kaydında yer almadığını ve kaydın ~all ile bittiğini gösterir. İleti teslim edilmiş, ancak SPF kontrolünden geçememiştir. Eğer kayıt -all ile bitmiş olsaydı başlık spf=fail şeklinde görünecek ve iletinin reddedilme olasılığı çok daha yüksek olacaktı.

Sorunun kaynağını bulmak için şu adımlar uygulanabilir: önce dig TXT ornek.com komutuyla mevcut SPF kaydı kontrol edilir; ardından 203.0.113.45 adresinin hangi servis tarafından kullanıldığı araştırılır (üçüncü taraf ESP, SMTP röle vb.); son olarak ilgili IP veya include: mekanizması kayda eklenerek -all'a geçilir.

Sık Sorulan Sorular

SPF softfail ile hardfail arasındaki temel fark nedir?

~all (softfail), yetkisiz göndericiyi işaretler ancak teslimi engellemez; alıcı sunucu kendi politikasına göre karar verir. -all (hardfail) ise yetkisiz göndericiyi açıkça reddeder ve alıcı sunuculara güçlü bir "bu IP'ye güvenme" sinyali verir. RFC 7208 her iki durumu da ayrı sonuç kategorileri olarak tanımlar.

DMARC kullanıyorsam softfail yeterli midir?

DMARC p=reject politikası aktifse, softfail alan bir iletide DMARC da fail döner ve ileti reddedilir. Bu senaryoda softfail teknik olarak işe yarar. Ancak DMARC olmayan veya p=none aşamasındaki alan adları için hardfail çok daha güçlü bir koruma sağlar.

~all'dan -all'a geçmek teslimatta sorun yaratır mı?

Eğer tüm meşru gönderici IP adresleri ve servisler SPF kaydına eklenmiş ise geçiş sorunsuz olur. Geçiş öncesinde MXToolbox veya dmarcian gibi araçlarla SPF kaydını doğrulayın ve DMARC raporlarını inceleyerek yetkisiz ama meşru göndericilerin olmadığından emin olun.

SPF kaydımda 10 lookup sınırını aşarsam ne olur?

RFC 7208 Bölüm 4.6.4 uyarınca değerlendirme PermError ile sonuçlanır. Bu durumda SPF ne softfail ne de hardfail üretir; kayıt tamamen geçersiz sayılır. DMARC'ın SPF uyumunu doğrulayabilmesi için lookup sayısını 10 altında tutmak zorunludur.

Hardfail kullanmak e-postalarımın spam klasörüne düşmesine yol açar mı?

Hayır, tam tersine. Hardfail yalnızca SPF kaydınızda yetkisiz olan IP'lerden gelen iletileri etkiler. Kendi meşru gönderici IP adreslerinizden yollanan iletiler spf=pass alır ve hardfail direktifinden etkilenmez.

E-posta göndermediğim alan adlarında hangi SPF kaydını kullanmalıyım?

E-posta göndermeyen (parked veya sadece web barındıran) alan adları için v=spf1 -all kaydı önerilir. Bu, söz konusu alan adından herhangi bir IP'nin e-posta gönderemeyeceğini açıkça beyan eder ve spoofing saldırılarını zorlaştırır.

Birden fazla SPF kaydı olabilir mi?

Hayır. RFC 7208 Bölüm 3.2 uyarınca bir alan adı için yalnızca bir SPF TXT kaydı olabilir. Birden fazla v=spf1 kaydı varsa sonuç PermError olur ve tüm SPF doğrulaması başarısız sayılır. Birden fazla servis için include: mekanizması tek bir kayıtta birleştirilmelidir.

Authentication-Results başlığında "spf=fail" ile "spf=softfail" farkını nasıl anlayabilirim?

Alıcı sunucu, Authentication-Results veya Received-SPF başlığına sonucu yazar. spf=softfail, gönderici alan adının ~all direktifi kullandığını; spf=fail ise -all direktifi kullandığını gösterir. Her ikisi de SPF doğrulamasının geçemediği anlamına gelir; fark, alan adı sahibinin bu duruma verdiği yanıtın şiddetinde yatar.

Softfail döneminde DMARC raporları ne işe yarar?

DMARC Aggregate (RUA) ve Forensic (RUF) raporları, hangi IP adreslerinin alan adınız adına e-posta gönderdiğini gösterir. ~all ile geçiş döneminde bu raporları analiz ederek tüm meşru göndericileri tespit edebilir, SPF kaydınıza ekleyebilir ve ardından güvenle -all'a geçebilirsiniz. dmarcian, Valimail ve EasyDMARC bu raporları görselleştiren popüler araçlardandır.

SPF hardfail, DKIM veya DMARC'ın yerini tutabilir mi?

Hayır. SPF yalnızca zarfın MAIL FROM alanını (Return-Path) doğrular; kullanıcıların gördüğü From: başlığını doğrulamaz. Bu boşluğu DKIM (RFC 6376) ve DMARC (RFC 7489) kapatır. Bütünsel e-posta güvenliği için SPF, DKIM ve DMARC üçlüsünün birlikte yapılandırılması zorunludur.

Kurumsal e-postaya ₺99'a geçin

Reklamsız, KVKK uyumlu; kurulum ve geçiş ücretsiz, mailleri biz taşırız.

📞 0312 434 35 34
Haziran kampanyası

Ücretsiz taşıma kampanyası
tüm e-postalarınızı biz taşıyoruz

₺99/kullanıcı/ay ₺199 %50 indirim

Kurulum + migrasyon ücretsiz. KVKK uyumlu, Türkiye'de barındırma. 7/24 Türkçe destek.

Kampanya 30 Haziran'a kadar geçerlidir.

WhatsApp 0312 434 35 34