dahili = "include" ":" alan-belirtimi
"
include" mekanizması
check_host() işlevinin ardışık değerlendirilmesini tetikler.
alan-belirtimi Makrolar bölümündeki gibi yorumlanır ve
check_host() işlevi, sonuçlanan dizgeyi
<alan> olarak değerlendirir.
<ip> ve
<gönderici> argümanları o an ki
check_host() değerlendirmesindekiyle aynı kalır.
Önemine ve niteliğine bakarak, bu mekanizma için "include" ismi yetersiz kalmıştır. Atıf yapılan SPF kaydı ilk kayıtta harfiyen içerilmiş gibi davranılacağı yerde, sadece atıf yapılan SPF kaydının değerlendirilen sonucu kullanılır. Örneğin, atıf yapılan alandaki bir "all" yönergesinin değerlendirilmesi işlemin tamamını sonlandırmaz ve sonucun bir bütün olarak "Fail" olmasını gerekli kılmaz. (Bu mekanizma için "if-pass", "on-pass", vb. bir isim daha uygun olurdu.)
"include" mekanizması, çok sayıda yönetimsel olarak bağımsız alanı tek bir alanda tasarlamayı mümkün kılar. Örneğin, sözde alan "example.net" yönetimsel olarak bağımsız alanlar olan example.com ve example.org sunucularını kullanarak posta gönderebilir.
Example.net şöyle bir kayıt içerirse,
IN TXT "v=spf1 include:example.com include:example.org -all"
bu kayıt, check_host() işlevini bir "Pass" sonucu için example.com ve example.org'un kayıtlarını sınamaya yöneltir. Sadece, konak bu alanların ikisinde de izinli değilse sonuç "Fail" olurdu.
check_host() işlevinin ardışık değerlendirmesinin sonucunda bu mekanizmanın davranış tarzı:
+--------------------------------+-------------------------------+
| Ardışık check_host() sonucunun | "include" mekanizması bunlara |
| bunlar olması için: | sebep olmalıdır: |
+--------------------------------+-------------------------------+
| Pass | eşleşir |
| | |
| Fail | eşleşmez |
| | |
| SoftFail | eşleşmez |
| | |
| Neutral | eşleşmez |
| | |
| TempError | TempError verir |
| | |
| PermError | PermError verir |
| | |
| None | PermError verir |
+--------------------------------+-------------------------------+
"include" mekanizması yönetimsel sınırları çaprazlamak için düşünülmüştür. "include" mekanizması çok sayıda alanın aynı konak kümesini paylaşmak üzere birleştirilmesi için kullanılması olasılığına rağmen, alanlar mümkün olduğunca "redirect"'leri kullanmaya, tek bir yönetimsel alan içinde "include"'ların sayısını azaltmaya teşvik edildiler. Örneğin, example.com ve example.org aynı öğe tarafından yönetiliyor ve eğer her iki alan "mx:example.com" konaklarına izin veriyorsa, example.org için "include:example.com" belirtmek mümkün olurdu, ama "redirect=example.com" hatta "mx:example.com" belirtmek tercih edilmektedir.