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.
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çerv=spf1 a -all
-- gönderen konak 192.0.2.10 ve 192.0.2.11 ise posta geçerv=spf1 a:example.org -all
-- example.org bir A kaydı içermediğinden hiçbir gönderen konak için posta geçmezv=spf1 mx -all
-- gönderen konak 192.0.2.129 ve 192.0.2.130 ise posta geçerv=spf1 mx:example.org -all
-- gönderen konak 192.0.2.140 ise posta geçerv=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çerv=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çerv=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
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.
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}
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.