SPF (Sender Policy Framework) запис в DNS зоната на един домейн позволява на неговия собственик да публикува списък от IP адреси или IP мрежи, които са оторизирани да изпращат електронна поща от името на този домейн. По този начин може да се намали спама и се затрудняват измамите, включващи подмяна на подателя на електронни съобщения. SPF запис може да бъде приложен, дори и когато ползвате публична мейл услуга, като Abv.bg например. В този случай, като оторизирани, трябва да се укажат IP адресите, от които Abv.bg изпраща поща.

Формат на SPF записа:

SPF се задава в DNS зоната със стандартен текстов запис.

Пример:

my-domain.com. IN TXT „v=spf1 ip4:195.41.125.0/24 ip4:196.122.95.11 a mx -all“

Параметри:

Повечето от параметрите работят съвместно с домейн. Ако някой параметър не е свързан с домейн, по подразбиране се има предвид конкретният домейн, в чиято DNS зона се прави SPF записа.

v – версия на SPF

ip4 / ip6 – задава вида на IP адресацията

а – указва че адресът на „А“ записа в DNS зоната на домейна, който указва сървъра, на който се намира едноименият сайт, също е валиден адрес за изпращане на е-поща.

Примери:

„v=spf1 a -all“ – може да се изпраща от същия домейн
„v=spf1 a:my-domain.com -all“ – също като горния пример, когато записът е за домейн my-domain.com
„v=spf1 a:mail.my-domain.com -all“ – указва се конкретен адрес за подател
„v=spf1 a/24 a:remote.my-domain.com/24 -all“ – оторизират се не само адресът на „A“ запис и специфичен адрес, но и целите C-клас IP мрежи, в които се намират посочените адреси.

mx – указва, че адресът на мейл сървъра за получаване на е-поща, обявен с MX запис в DNS зоната на домейна, също е оторизиран подател.

Пример:

„v=spf1 mx mx:remote.my-domain.com -all“ – оторизират се адресът на мейл сървъра, който получава поща за този домейн и адресът на друг конкретен сървър.

ptr – оторизира IP адрес, ако той преминава проверката „обратен резолвинг“, изпълнявана с т. нар. PTR заявки. Това са заявки към PTR записите в домейн зоната на домейна.

Примери:

„v=spf1 ptr -all“ – оторизира всички сървъри на един доставчик – подходящ за доставчици на уеб услуги.
„v=spf1 ptr:otherdomain.com -all“ – разрешава изпращането от всеки сървър, чието име (hostname) завършва на otherdomain.com.

exists – допуска се изпращането, стига указаният домейн адрес да е валиден и да „резолва“, т. е. да отговаря на конкретен IP адрес.

Пример:

„v=spf1 exists:my-domain.com -all“

include – включва политиката на друг домейн.

Пример:

„v=spf1 include:_spf.google.com ~all“

all – действие за всички останали адреси

Видове действия на параметрите:

„+“ – допускане

„-“ – отхвърляне

„~“ – условно отхвърляне –  препоръчително действие – „допускане“ и маркиране

„?“ – неутрална инструкция – препоръчително действие – „допускане“

Действието по подразбиране, когато не е указано такова, е „+“ („допускане“).

Примери:

„v=spf1 mx -all“ – допуска изпращане от mx адреса, забранява от всички останали
„v=spf1 +mx -all“ – същото действие, както по-горния пример

Ако вашият домейн няма SPF запис е напълно възможно да не бъде получен от ваш партньор, въпреки, че е оригинален, т. е. е изпратен от вас. Това се случва, когато получателят изисква проверка на валидността на подателя и очаква да я направи като изполва SPF записа за домейна.

Подобен проблем може да се случи и когато пощата се изпраща през препращащ сървър (forwarder). В този случай подателят трябва да се погрижи на препращащия сървър да работят подходящи „rewrite“ правила.

По-висока защита на електронната поща може да бъде постигната със съвместно използване на SPF и DMARC записи.