Ek B. Çeşitli Örnekler

Buradaki örnekler aşağıdaki DNS ayarlarına dayandırılmıştır:

; İki posta sunuculu bir alan,
; alan adında iki konak ve iki sunucu
$ORIGIN example.com.
@           MX  10 mail-a
            MX  20 mail-b
            A   192.0.2.10
            A   192.0.2.11
amy         A   192.0.2.65
bob         A   192.0.2.66
mail-a      A   192.0.2.129
mail-b      A   192.0.2.130
www         CNAME example.com.

; İlişkili alan
$ORIGIN example.org.
@           MX  10 mail-c
mail-c      A   192.0.2.140

; Bu adresler için tersinir IP
$ORIGIN 2.0.192.in-addr.arpa.
10          PTR example.com.
11          PTR example.com.
65          PTR amy.example.com.
66          PTR bob.example.com.
129         PTR mail-a.example.com.
130         PTR mail-b.example.com.
140         PTR mail-c.example.org.

; birşeylere ait olmayı istemeyen
; muzip bir tersinir IP alanı
$ORIGIN 0.0.10.in-addr.arpa.
4           PTR bob.example.com.
Örnek: Basit Örnekler

Bu örnekler, check_host() işlevinin "Pass" döndürmesine sebep olan <ip değerleri ve example.com için yayınlanması olası çeşitli kayıtlardan oluşmaktadır. <alan>'ın "example.com" olduğuna dikkat ediniz.

v=spf1 +all
   -- her <ip> geçer

v=spf1 a -all
   -- gönderen konak 192.0.2.10 ve 192.0.2.11 ise posta geçer

v=spf1 a:example.org -all
   -- example.org bir A kaydı içermediğinden
      hiçbir gönderen konak için posta geçmez

v=spf1 mx -all
   -- gönderen konak 192.0.2.129 ve 192.0.2.130 ise posta geçer

v=spf1 mx:example.org -all
   -- gönderen konak 192.0.2.140 ise posta geçer

v=spf1 mx mx:example.org -all
   -- gönderen konak 192.0.2.129, 192.0.2.130 ve 192.0.2.140
      ise posta geçer

v=spf1 mx/30 mx:example.org/30 -all
   -- 192.0.2.128/30 veya 192.0.2.140/30 içindeki
      her gönderen konak için posta geçer

v=spf1 ptr -all
   -- gönderen konak 192.0.2.65 ise posta geçer
      (ters DNS geçerlidir ve konak example.com içindedir)
   -- gönderen konak 192.0.2.140 ise posta geçmez
      (ters DNS geçerlidir, ama konak example.com içinde değildir)
   -- gönderen konak 10.0.0.4 ise posta geçmez
      (tersinir IP geçersizdir)

v=spf1 ip4:192.0.2.128/28 -all
   -- gönderen konak 192.0.2.65 ise posta geçmez
   -- gönderen konak 192.0.2.129 ise posta geçer

Örnek: Çok Alanlı Örnek

Bu örnekler etkilerini bu kayıtla ilgili olarak gösterirler:

example.org: "v=spf1 include:example.com include:example.net -all"

Bu kayıt, eğer example.org'dan gelen postayı aslında example.com ve example.net sunucularından geliyorsa kullanılır. Example.org'un tasarlanmış sunucuları example.com and example.net'in tasarlanmış sunucularının birleşimidir.

la.example.org: "v=spf1 redirect=example.org"
ny.example.org: "v=spf1 redirect=example.org"
sf.example.org: "v=spf1 redirect=example.org"

Bu kayıtlar bir alanlar kümesinin hepsinin aynı posta sistemini, o sistemin kaydından yararlanarak kullanmasını mümkün kılar. Bu yolla, posta ayarlarında değişiklik yapmak gerektiğinde sadece posta sisteminin kaydının güncellenmesi yeterli olur. Bu alanların kayıtları hiçbir zaman değişmez.


Örnek: DNSBL Tarzı Örnek

Farzedelim ki, yukarıda listelenmiş alan kayıtlarına ek olarak bunlar da olsun:

$ORIGIN _spf.example.com.  mary.mobile-users                   A
127.0.0.2 fred.mobile-users                   A 127.0.0.2
15.15.168.192.joel.remote-users     A 127.0.0.2
16.15.168.192.joel.remote-users     A 127.0.0.2

Aağıdaki kayıtlar postalarını keyfi sunuculardan veya kişisel sunucularından gönderen kullanıcıları açıklamaktadır.

example.com:

v=spf1 mx
       include:mobile-users._spf.%{d}
       include:remote-users._spf.%{d}
       -all

mobile-users._spf.example.com:

v=spf1 exists:%{l1r+}.%{d}

remote-users._spf.example.com:

v=spf1 exists:%{ir}.%{l1r+}.%{d}

Örnek: Çok Gereksinimli Örnek

Diyelim ki, gönderici kurallarınız, hem IP adreslerinin belli bir aralık içinde kalmasını hem de bu IP'ler için ters DNS kayıtlarının eşleşmesini gerektirsin. Bu çeşitli yollardan yapılabilir, örnek:

example.com.           SPF  ( "v=spf1 "
                              "-include:ip4._spf.%{d} "
                              "-include:ptr._spf.%{d} "
                              "+all" )
ip4._spf.example.com.  SPF  "v=spf1 -ip4:192.0.2.0/24 +all"
ptr._spf.example.com.  SPF  "v=spf1 -ptr +all"

Bu örnekler "-include" mekanizmasının ne kadar kullanışlı olabileceğini, "+all" ile biten bir SPF kaydının nasıl çok sınırlayıcı olabileceğini ve De Morgan Kuralının kullanımını göstermektedir.