SPF'yi anlamak için önce SMTP'nin nasıl çalıştığını bilmek gerekir.
SMTP, bir iletişim protokolüdür ve e-posta iletmekten sorumludur. E-posta gönderildikten sonra sunucu epostayı saklamaz.
Başlangıçta smtp sadece şirket içi ağlarda kullanıldı. Görevi sadece bir e-postayı bir yerden bir yere iletmektir.
SMTP, gönderici adresinin gerçekten var olup olmadığını kontrol etmez. Sahte bir e-posta adresiyle hatta hiç var olmayan bir domain ile e-posta göndermek mümkündür. Ancak, gönderilen alan adının (domain) DNS kayıtlarına bakarak var olup olmadığını kontrol edebilir.
Bu yüzden SMTP, kimlik doğrulama yapmaz. İsteyen herkes, herhangi bir alan adıyla e-posta gönderebilir. İşte burada SPF devreye girer.

SPF, bir alan adının (domain) hangi sunucular üzerinden e-posta gönderebileceğini belirleyen bir DNS kaydıdır. SPF, SMTP’nin e-posta gönderme işlemini engellemez. SPF kaydı, e-posta gönderen domainin hangi IP adreslerinden mail gönderebileceğini belirler, ancak kimlik doğrulaması yapmaz. SPF, yalnızca mailin doğru kaynaktan gelip gelmediğini kontrol eder, ancak e-postanın gerçekten doğru kişi tarafından gönderilip gönderilmediğini doğrulamaz.
| Özellik | ip4 | include | 
|---|---|---|
| Ne yapar? | Belirli IP adreslerine izin verir. | Başka bir domainin SPF kaydını dahil eder. | 
| Hedefi nedir? | Sadece belirtilen IP'leri kullanır. | Başka bir hizmetin (ör. Google, Microsoft) SPF kaydını kullanır. | 
| Kullanım durumu | Kendi e-posta sunucunuzu kullanıyorsanız. | Harici bir e-posta hizmeti (Gmail, Outlook vb.) kullanıyorsanız. | 
| Örnek SPF kaydı | v=spf1 ip4:192.168.1.1 -all | v=spf1 include:_spf.google.com -all | 
| Özellik | Örnek SPF Kaydı | 
|---|---|
| Basit: Bir IP | v=spf1 ip4:192.168.1.1 -all | 
| Bir IP ve Include | v=spf1 ip4:192.168.1.1 include:_spf.google.com -all | 
| Sadece Include | v=spf1 include:_spf.google.com -all | 
| İki IP | v=spf1 ip4:192.168.1.1 ip4:203.0.113.5 -all | 
| Bir IP ve Bir Include (Farklı Hizmet) | v=spf1 ip4:192.168.1.1 include:spf.protection.outlook.com -all | 
| İki IP ve İki Include | v=spf1 ip4:192.168.1.1 ip4:203.0.113.5 include:_spf.google.com include:spf.protection.outlook.com -all | 
SPF kaydında all ifadesi, kaydın sonunda yer alır ve e-posta doğrulamasına son bir kontrol ekler. Bu, e-posta gönderme işleminin tüm koşullarını geçip geçmediğine göre sonucun belirlenmesinde kullanılır.
| Özellik | Örnek | Açıklama | 
|---|---|---|
| Hard Fail (-all) | v=spf1 ip4:192.168.1.1 -all | Dış IP'lerden gelen e-postalar reddedilir. Sadece belirtilen IP adresinden gelenler kabul edilir. | 
| Soft Fail (~all) | v=spf1 ip4:192.168.1.1 ~all | Diğer IP'lerden gelen e-postalar, spam olarak işaretlenir, reddedilmez. | 
| Neutral (+all) | v=spf1 ip4:192.168.1.1 +all | Herhangi bir kayda sahip olmayan IP adreslerinden gelen e-postalar nötr olarak değerlendirilir, yani kesin bir karar verilmez. | 
| Fail (all) Birleştirilmiş | v=spf1 ip4:192.168.1.1 include:_spf.example.com -all | Belirtilen IP ve dahil edilen SPF kayıtları dışındaki her şey reddedilir. | 
SPF (Sender Policy Framework) kaydının versiyonunu belirtir. Yani, SPF kaydının 1. sürümünü kullanarak, e-posta gönderen domainin hangi sunuculardan mail göndermesine izin verileceğini tanımlar. Bu, SPF kaydının başlangıcında yer alır ve SPF sistemine bu kaydın geçerli olduğunu belirtir.
SPF kaydı, e-posta güvenliğini sağlamak içindir ve DNS kayıtlarına TXT kaydı olarak eklenir.
v=spf1 devedijital.com -all ❌ (Hatalı, domain doğrudan yazılmaz)
devedijital.com un ip adresi 123.123.123.123 olsun
v=spf1 ip4:123.123.123.123 -all
Evet, yalnızca mail gönderme hizmeti almak mümkündür.
Amazon SES dışında SMTP hizmeti sağlayan bazı popüler servisler şunlardır: