SPF запись, расширено
Как уже было сказано в одном из предыдущих постов постов, SPF запись в DNS зоне нашего домена, это тот инструмент — который позволяет указать какими почтовыми серверами Вы пользуетесь, чтобы дать понять получателю, аутентическая или нет почта получена от имени вашего домена.
Мы уже рассмотрели следующие механизмы работы SPF записи
mx — MX сервера
ip4 — ИП адес
a — доменное имя
include — хосты, разрешенные SPF записью конкретного домена
all — все остальные хости
Хотелось бы немного дополнить выше сказанное. Я говорил о том что механизм ip4 работает как с конкретным IP адресом, так и с под-сетью IP адресов. Так вот, механизмы «a» и «mx» ни чуть не хуже работают с под-сетями.
Поясню на примере, допустим у нас есть вот такая SPF запись
«v=spf1 mx mx:hostinglife.org -all»
Эта запись говорит нам что в список разрешенных отправителей входят сервера указанные в MX записях Вашего домена и моего домена (hostinglife.org). Эту же запись можно немного модифицировать. тем самим расширив ее возможности
«v=spf1 mx/24 mx:hostinglife.org/24 -all»
Что же у нас получилось, теперь в список разрешённых отправителей входят все IP адреса находящиеся в тех же под-сетях класса C что и MX’ы Вашего и моего доменов,
Таким образом если Ваш домен имеет один MX сервер с IP адресом 10.0.0.3 а hostinglife.org 2 MX’а с IP адресами
192.168.0.1 и 192.168.2.0 то в список разрешенных отправителей входят 10.0.0/24, 192.168.0/24 и 192.168.2.0/24
Всего пара слешей («/») превращают механизм mx в мощный инструмент при работе с SPF записью.
Точно такой же принцып работы с под-сетями и у механизма «a»
«v=spf1 a:hostinglife.org/24 -all»
В список разрешенных отправителей входят все IP адреса, находящиеся в одной под-сети класса C что и IP адрес домена hostinglife.org
Пришло время поговорить о менее популярных механизмах и модификаторах SPF записи
ip6 — ну здесь все просто, указываем IP адрес 6й версии или под-сеть IP адресов v6
ptr — я крайне не рекомендую использовать этот механизм, но рассказать о нем просто обязан.
Работает он следующим образом, указываем домен/хостнайм например ptr:hostinglife.org
Этот механизм проверит PTR запись IP адреса отправителя и если она сходится с доменом который мы указали (hostinglife.org) то механизм выдаст позитивный результат. То есть всем IP адресам, PTR записи которых направлены на домен указанный в ptr: разрешено слать почту. Если домен не указам, а стоит просто ptr то используется домен по умолчанию. С первого взгляда удобный механизм. но он генерирует слишком много лишних DNS лукапов, поэтому мало используем.
exists - это механизм схожий с механизмом «a», но его отличием является то, что он проверяет, или домен указанный в SPF записи резолвится на какой нибудь IP адрес, другими словами, проверяет или домен жив.
Стоить отметить что абсолютно неважно, на какой IP адрес направлен домен, будь это хоть 127.0.0.1 хоть 192.168.0.1
«v=spf1 exists:hostinglife.org -all»
Модификаторы redirect и exp
redirect
«v=spf1 redirect=hostinglife.org ~all»
redirect=hostinglife.org говорит получателю о том, что надо проверять SPF запись домена hostinglife.org вместо текущего домена
exp — этот модификатор позволяет задать сообщение о ошибке, которое будет передано отправителю при появлении таковой. Объясню на примере, потому что на словах не понять. Модификатор EXP должен идти последним, даже после механизма ALL.
Припустим наш домен yourdomain.ru
«v=spf1 a mx include:google.com -all exp=lol.yourdomain.ru»
потом создаем TXT запись для домена lol.yourdomain.ru следующего характера
lol.yourdomain.ru IN TXT » you are not allowed to email here»
Теперь кроме того, что SPF запись будет следить за тем чтобы почту слали только те кому положено, так она еще и будет рассылать сообщение о ошибке, которое мы поставили в TXT запись домена lol.yourdomain.ru

Спасибо, позновательно
рад что пригодилось