Сервис по проверке SPF записи через DNS
Сервис выполняет запрос к DNS, получает из него все TXT записи, проверяет каждую из них на наличие SPF. Проверяется синтаксис записи (SPF запись может быть одна на домен). Если запись содержит ссылку на другой домен, то выполняется проверка SPF записи на другом домене. Если тест будет пройден - появится ваша SPF запись и результат "Успех". В ином случае появится ошибка.
Обратите внимание, что ваши записи могут не отображаться, т.к. могут быть закэшированы на одном из DNS серверов. В этом случае попробуете перейти на соседнюю страницу и запросить TXT записи через разные DNS сервера.
Есть так же детальная информация доступная по кнопке "Полный вывод", содержащая всю полученную информацию, а так же проверку DMARC, MX сервера и все найденные IPv4/IPv6 адреса.
Используемый DNS - 8.8.8.8 (Google).
Постарайтесь избегать использование протоколов в названии домена типа: 'https://', 'ftp://'. Выполняются DNS запросы, а не http. Использование протоколов может привести к ошибкам.
Для чего нужна SPF запись в DNS
Протокол отправки писем SMTP (Simple Mail Transfer Protocol) - устроен таким образом, что серверу, на котором этот протокол работает, не нужно как-то подтверждать что он в праве это делать. Вы можете отправлять со своего сервера письма от имени любого домена, например "gmail.com". Такой тип работы, в скором времени, привел к тому, что от известных пользователю доменов приходил спам и вирусы.
Письма, которые попадают в ящик, несут в себе не только текст и разные вложения. В исходном коде письма, так же, содержится IP адрес отправителя. Условно вы можете позвонить администратору домена "gmail.com" и спросить принадлежит ли этот IP адрес их компании и, если это не так, переложить письмо в спам.
Для того, что бы это выполнялось автоматически, была придумана SPF запись. Она хранит IP адреса серверов, которые могут отправлять письма. Ваша антиспам защита, автоматически, проверяет эти IP адреса и сравнивает с тем, что у вас в письме.
Некоторые компании будут всегда отправлять вас в спам, если у вас отсутствует SPF запись. Наличие корректной SPF записи значительно повышает вероятность, что ваше письмо не будет расценено как спам.
Из чего состоит SPF запись
В протоколе DNS, который возвращает записи относящиеся к домену, есть запись TXT. Она может хранить произвольный текст. В нее помещается текст следующего формата:
v=spf1 ip4:192.0.2.0/24 ip4:198.51.100.123 a ~all
Есть ряд обязательных и не обязательных параметров. Разделим их на типы:
- "v=spf1" - версия SPF. На данный момент нет другой версии. Этот параметр обязательный и должен быть первым;
После версии указываются IP адреса серверов, с которых будут отправляться письма. Указать IP адреса можно через параметры, описанные ниже. Их может быть как один, так и несколько, они так же могут использоваться вместе:
- ip4 - адрес IPv4. Доступный синтаксис:
- ip4:<ip4-address>
- ip4:<ip4-network>/<prefix-length>
- ip6 - адрес IPv6. Доступный синтаксис:
- ip6:<ip6-address>
- ip6:<ip6-network>/<prefix-length>
- include - указывает на домен, где можно искать другие spf записи. Используется в больших организациях, например "gmail.com". Это связано с тем, что SPF запись не может быть длиннее 255 символов и максимум 10 адресов на 1 запись (общее название lookups). Так же позволяет, таким образом, разделять права. Синтаксис: include:<domain>;
- mx - включать IP адреса, которые прописаны в MX записях вашего DNS. Если домен не указан, используется домен из почтового адреса. Доступный синтаксис:
- mx
- mx/<prefix-length>
- mx:<domain>
- mx:<domain>/<prefix-length>
- a -включать IP адреса, которые прописаны в A или AAAA записях вашего DNS. Если домен не указан, используется домен из почтового адреса. Доступный синтаксис:
- a
- a/<prefix-length>
- a:<domain>
- a:<domain>/<prefix-length>
- ptr - ищется имя хоста используя PTR запрос. Затем проверяется A запись, соответствующая PTR. Затем сверяется IP из A записи с IP из письма. Не рекомендуется использовать из-за множества DNS запросов, что увеличит время фильтрации писем. Доступный синтаксис:
- ptr
- ptr:<domain>
Для параметров, описанных выше, вы так же можете добавлять знаки в начале параметра: '-' (отклонять если совпадает), '+' (принимать если совпадает), '~' (помещать в спам если совпадает), '?' (нейтральный флаг). По умолчанию стоит '+', т.е. все указанные сервера будут считаться надежными отправителями. Остальные знаки используется очень в специфичных условиях.
Заканчивается SPF запись инструкцией, которая говорит, что делать с письмами, которые пришли с IP, которые не указаны в записи:
- ~all - положить в спам;
- -all - отклонить;
- +all - принять;
- ?all - не определено.
Параметры, которые практически не используются:
- exists:<domain> - у указанного домена ищется A запись. Если она существует, то это считается совпадением;
- redirect=<domain> - указывает на домен, где нужно искать SPF запись;
- exp=<domain> - используется в случаях, когда IP адрес отправителя не соответствует записи SPF. Запись указывает на домен, где можно найти TXT запись. В этой TXT записи прописывается сообщение, например "Вы не можете отправлять письма от 'domain.local' используя сторонние сервера".
Как создать SPF запись
Для создания записи вам нужно выполнить следующие шаги:
- Собрать все внешние (белые/публичные) IP адреса с которых выполняется отправка писем. Чаще всего это будет адрес роутера.
- Создать SPF запись используя значения, описанные выше.
- Зайти в панель администрирования вашего публичного DNS сервера (чаще всего эта панель находится у провайдера у которого вы оплачиваете домен). Создать в ней TXT запись и поместить в нее SPF.
После этого вы можете проверить ее через форму на этой странице. Если вы прописали SPF, но тесты не проходят, попробуйте запросить TXT запись через сервис на соседней странице. Возможно, что на одном из DNS сервере закэшировались записи и нужно подождать, когда они обновятся.
Пример самых используемых SPF записей
Чаще всего используют следующие SPF записи.
Следующая запись говорит, что сообщения, пришедшие с адреса "85.210.112.0", должны пройти проверку т.е. являются надежными. Если письмо пришло с другого адреса - рекомендуется поместить его в "Спам".
v=spf1 ip4:85.210.112.1 ~all
Если вы используете какие-то сервисы по рассылке писем, то обычно добавляются еще и их SPF записи. Например так.
v=spf1 ip4:85.210.112.1 include:mailgun.org include:_spf.elasticemail.com ~all
Еще один пример, который используется в компании с численностью 100к+ человек. Кроме 1-ого IP они добавляют еще MX записи.
v=spf1 ip4:85.210.112.1 mx ~all