SPF (Sender Policy Framework) — механизм аутентификации email, определённый в RFC 7208 (2014). Владелец домена публикует в DNS TXT-запись, указывающую, каким серверам разрешено отправлять почту от имени домена. Принимающий MTA (Mail Transfer Agent) проверяет SMTP MAIL FROM (или Return-Path) и сравнивает IP-адрес отправителя с SPF-записью.
Синтаксис SPF
SPF-запись — DNS TXT-запись для домена (или поддомена). Пример:
v=spf1 ip4:203.0.113.0/24 include:_spf.google.com mx -all
Разбор элементов:
v=spf1— версия (единственная существующая).ip4:203.0.113.0/24— авторизован диапазон IPv4-адресов.include:_spf.google.com— включить SPF-запись Google (для Gmail Workspace).mx— авторизованы серверы, указанные в MX-записях домена.-all— всё остальное запрещено (Fail). Варианты:~all(SoftFail, мягкий отказ),?all(нейтрально),+all(всё разрешено — опасно).
Ограничение SPF: не более 10 DNS-запросов при обработке записи (include, a, mx, ptr, exists). Превышение — «SPF PermError», что означает неопределённый результат.
SPF, DKIM, DMARC
SPF не работает в одиночку против современного спама — он проверяет только MAIL FROM (envelope sender), а не заголовок From: (видимый пользователю). Полноценная защита требует DKIM (подпись тела письма и заголовков ключом) и DMARC (политика что делать при несовпадении SPF/DKIM и домена From). Все три работают через DNS-записи.
История
SPF предложил Мэн Вонг в 2003 году как ответ на рост спама с поддельными адресами отправителей. Черновой RFC 4408 (2006) стал первым официальным документом. RFC 7208 (2014) — актуальная версия стандарта. Одновременно Microsoft продвигал схожую технологию Sender ID; в итоге победил SPF. К 2024 году SPF поддерживается практически всеми почтовыми провайдерами; Gmail и Yahoo с 2024 года требуют его наличие для массовых рассылок.
На что обращать внимание
Ошибка «нет SPF-записи» — частая причина попадания в спам при отправке с собственного домена. При настройке нового почтового сервера создайте SPF-запись в первый день. При использовании нескольких email-провайдеров (SendGrid + Gmail Workspace + корпоративный сервер) объедините их в одну SPF-запись с учётом лимита 10 DNS-запросов. Значение -all жёстче ~all: при ~all письма от неавторизованных IP проходят с пометкой, при -all — отклоняются. Начинайте с ~all при первоначальной настройке, переходите на -all после проверки.
История SPF
SPF (Sender Policy Framework) разработан Майклом Ленгом в 2003 году. Стандартизирован в RFC 4408 (2006), обновлён в RFC 7208 (2014). Появился как ответ на волну спама в 2002–2003 годах, когда отправить письмо от чужого домена не составляло труда. Совместно с DKIM и DMARC образует стек Email Authentication.
Типичные ошибки настройки SPF
Первая ошибка — слишком длинная SPF-запись: RFC 7208 ограничивает количество DNS-lookups до 10. Каждый include/mx/a/ptr считается как lookup. Превышение лимита — PermError, письма уходят в спам. Используйте SPF-flattening инструменты. Вторая ошибка — +all вместо -all: +all означает «все серверы разрешены», что делает SPF бессмысленным. Третья — дублирование SPF-записей: в зоне должна быть ровно одна TXT-запись с v=spf1.