OSEN-НИЙ SAAALEСкидка 50% на виртуальный хостинг и VDS
до 30.11.2025 Подробнее
Выберите продукт

Доставляемость почты: PTR, HELO, SPF и базовая проверка Postfix

Если письма из вашего сервера попадают в спам или теряются, начните с азов: правильный PTR, осмысленный HELO, валидный SPF и минимальные настройки TLS. В статье — понятные проверки, примеры для Postfix и чек‑лист типичных ошибок, чтобы восстановить нормальную доставляемость за 30–60 минут.
Доставляемость почты: PTR, HELO, SPF и базовая проверка Postfix

Когда мы говорим про доставляемость (deliverability) почты с собственного сервера, чаще всего корень проблем — не в «магии антиспама», а в базовой гигиене: корректный PTR (обратная зона), предсказуемый HELO/EHLO, валидная SPF‑запись и опрятная конфигурация Postfix с включённым TLS. Ниже — пошаговая, практичная и воспроизводимая схема проверки, рассчитанная на администраторов, которые хотят быстро вывести исходящую почту из «серой зоны» к стабильной доставке.

Что действительно влияет на доставляемость

Почтовые провайдеры и фильтры смотрят на совокупность сигналов. На первом рубеже — техническая валидность соединения и домена отправителя: обратная DNS‑запись (PTR) для IP, из которого отправляется почта; совпадение HELO/EHLO с реальным именем хоста; позитивный forward‑confirm reverse DNS (FCrDNS), когда имя из PTR резолвится обратно в тот же IP; корректная SPF‑запись, описывающая, кто имеет право отправлять почту от имени домена; и наличие TLS при исходящих соединениях. Если эти условия соблюдены, вы убираете самые грубые красные флаги и получаете шанс на нормальную репутацию и инбокс.

Важно: дальше будут примеры для Postfix. Они подходят для большинства распространённых дистрибутивов. Перед изменениями всегда сохраняйте резервную копию конфигов и следите за логами.

PTR и FCrDNS: обратная зона должна быть связана с именем хоста

PTR — это обратная DNS‑запись для вашего IP. Когда ваш сервер устанавливает SMTP‑соединение, принимающая сторона делает reverse‑lookup IP в PTR, а затем часто проверяет, резолвится ли полученное имя обратно в тот же IP (FCrDNS). Несоответствие или отсутствие PTR — одна из самых частых причин «серая зона/спам/блокировки».

Минимальные требования к PTR

Для исходящей почты у публичного IP должен быть один PTR, указывающий на полное доменное имя (FQDN) вашего почтового хоста, например mail.example.ru. Это имя должно иметь A/AAAA‑запись на тот же IP. На практике это выглядит так: IP → PTR → FQDN → A/AAAA → тот же IP. Такая связка повышает доверие.

Как проверить PTR и FCrDNS

Сначала убедитесь, что задано имя хоста и оно совпадает с тем, что вы планируете использовать в HELO:

hostnamectl status

Проверьте обратную зону и прямую резолюцию:

dig -x 203.0.113.10 +short
host 203.0.113.10
getent hosts mail.example.ru
dig A mail.example.ru +short

Если обратная зона отсутствует или указывает на неожиданное имя (например, на технический PTR провайдера), закажите настройку PTR у владельца подсети вашего IP. Важно: один IP — один PTR. Множественные PTR для одной адресации часто ухудшают оценку.

Нужен выделенный статический адрес под почтовый сервер? Рассмотрите VDS — это упростит управление rDNS и сетью.

HELO/EHLO: здравствуйте, я реальный хост

В SMTP ваш сервер представляется именем в команде HELO/EHLO. Это имя должно быть FQDN, которое вы контролируете, и которое корректно резолвится. По умолчанию Postfix использует $myhostname. Ошибочно отправлять HELO как IP‑адрес, localhost или несуществующий домен — многие фильтры режут такие соединения на входе.

Проверка и установка имени хоста

Задайте FQDN для системы и согласуйте его с DNS:

hostnamectl set-hostname mail.example.ru

Убедитесь, что в /etc/hosts нет конфликтующих записей. Пример корректного фрагмента:

127.0.0.1 localhost
127.0.1.1 mail.example.ru mail

Проверьте, что Postfix видит ожидаемое имя:

postconf myhostname

При необходимости явно укажите, чем представляться во время исходящих соединений:

postconf -e "myhostname = mail.example.ru"
postconf -e "smtp_helo_name = $myhostname"

После изменения параметров не забудьте перезапустить Postfix и посмотреть логи на предмет предупреждений.

SPF: пусть мир знает, с каких IP мы отправляем письма

SPF — это TXT‑запись в DNS домена отправителя, которая перечисляет источники, уполномоченные отправлять почту. Когда ваш сервер стучится в чужой MX, принимающая сторона вычисляет домен из обратного пути (envelope from), запрашивает его SPF и проверяет, есть ли там ваш IP или другой разрешённый механизм.

Минимальная и понятная SPF‑запись

Если вы отправляете почту только с одного сервера, достаточно явно перечислить его IP, а также разрешить A/MX домена, если они действительно указывают на ваш почтовый хост:

example.ru.  TXT  "v=spf1 a mx ip4:203.0.113.10 -all"

Ключевые моменты:

  • -all даёт жёсткую политику «всё остальное запрещено». Для отладки можно временно ставить ~all (softfail), но в продуктиве жёсткая политика прозрачнее.
  • Убедитесь, что суммарное количество DNS‑запросов SPF не превышает 10. Старайтесь ограничивать цепочки include и redirect.
  • Проверьте корректность кавычек и длину. Если запись большая — разбивайте на несколько строк зоны, но итоговая TXT‑строка для клиента должна склеиваться в единый текст.

Проверить опубликованную запись можно так:

dig TXT example.ru +short

Если домен только планируете — оформите его через регистрацию доменов, чтобы сразу получить доступ к DNS‑зоне.

Отдельно рекомендую вспомнить про DMARC/DKIM: мы собрали базовые подходы в материале про DNS‑записи для аутентификации почты.

TLS для Postfix: «минимум обязательно»

Оппортунистический TLS давно стал нормой. Он не гарантирует шифрование к каждому домену, но демонстрирует базовую гигиену, а для ряда получателей становится обязательным требованием. Для исходящих соединений достаточно выставить smtp_tls_security_level = may, включить логирование TLS и удостовериться, что система знает корневые сертификаты.

Базовый набор параметров для начала:

postconf -e "smtp_tls_security_level = may"
postconf -e "smtp_tls_loglevel = 1"
postconf -e "smtp_tls_note_starttls_offer = yes"

Для входящих соединений (если вы принимаете почту) настройте серверный сертификат и приватный ключ, затем включите smtpd_tls_security_level = may. Используйте действительный сертификат, соответствующий имени хоста — получить его можно через SSL-сертификаты.

Базовая проверка конфига Postfix

Прежде чем углубляться в тонкую настройку, пройдите короткий цикл проверки. Он помогает быстро поймать очевидные misconfig‑ошибки, которые и убивают deliverability.

Диагностика конфигурации

Посмотрите только изменённые от дефолта параметры — они важнее всего:

postconf -n

Убедитесь, что ключевые параметры выставлены осмысленно:

  • myhostname — FQDN, совпадающий с PTR и HELO.
  • mydomain и myorigin — домен, от имени которого вы отправляете почту.
  • inet_interfaces и inet_protocols — соответствуют вашей сети (IPv4/IPv6).
  • smtp_helo_name — совпадает с $myhostname и резолвится.
  • smtp_tls_security_level и smtpd_tls_security_level — включены как минимум в режим may.

Проверка синтаксиса и прав на файлы сертификатов/ключей:

postfix check

Проверьте, что служба встала и слушает нужные порты:

systemctl status postfix
ss -lntp | grep :25

Запустите тестовые исходящие соединения и посмотрите, как сервер представляется и что отвечает другая сторона. Это помогает увидеть HELO, TLS и реакцию на SPF снаружи:

openssl s_client -starttls smtp -connect mx.example.net:25 -servername mx.example.net -brief

Параллельно держите хвост логов, чтобы ничего не пропустить:

tail -f /var/log/mail.log

Схема rDNS/PTR и SPF для исходящей почты

Связка PTR ↔ HELO ↔ SPF: как они должны соотноситься

Чтобы уменьшить поводы для недоверия у принимающих серверов, держите единый нарратив:

  • IP имеет PTR, который указывает на mail.example.ru.
  • mail.example.ru резолвится в тот же IP по A/AAAA.
  • Postfix в HELO говорит mail.example.ru.
  • SPF домена отправителя перечисляет этот IP и/или A/MX записи, которые действительно указывают на тот же хост.

Формально HELO не обязан совпадать с доменом отправителя в MAIL FROM, но когда эта связка логична и проверяема, меньше поводов попасть под эвристические фильтры.

Типичные ошибки и как их быстро исправить

«Reverse DNS does not match»

Причина: PTR указывает на техническое имя провайдера или на имя, которое не резолвится обратно в ваш IP. Решение: задать понятный PTR на FQDN вашего почтового хоста и убедиться, что A/AAAA возвращают тот же IP.

HELO как IP, localhost или пустая строка

Причина: в системе не выставлен FQDN или Postfix берёт дефолтное некорректное имя. Решение: задать myhostname, проверить /etc/hosts, указать smtp_helo_name.

SPF: none, permerror или слишком общий механизмы

Причины: SPF не опубликован; запись превышает лимиты или содержит синтаксические ошибки; используется +all, что фактически разрешает всем отправлять от вашего домена. Решение: опубликовать корректную запись, упростить механизмы до конкретных IP/A/MX, перейти на -all после тестирования.

Нет TLS на исходящих

Причина: не настроен smtp_tls_security_level и/или отсутствует доверенный стор корневых сертификатов. Решение: включить may, установить пакет с корневыми сертификатами, включить логирование TLS для диагностики.

IPv6 без rDNS или с неподготовленным HELO

Причина: при наличии AAAA‑записи или включённом IPv6 Postfix может выбирать v6‑маршрут, где не настроен PTR и FCrDNS. Решение: либо настраивать PTR/FCrDNS для IPv6, либо ограничить inet_protocols = ipv4, пока не подготовитесь к v6.

Проверочные письма и читаемые логи

Отправьте пару тестовых писем на внешние ящики, внимательно глядя в логи Postfix. Ищите строки со словами connect, EHLO, STARTTLS, status=sent, а также реакцию MX‑сервера. Это даёт фактическое подтверждение того, как вас видит мир: какое имя в HELO, использовался ли TLS, какой код ответа вернул получатель.

Если письмо улетело, но дошло в спам — посмотрите заголовки на стороне получателя: результат SPF, видимое имя HELO, TLS‑параметры, оценка по евристикам. Даже без DKIM/DMARC базовая гигиена уже должна давать заметное улучшение по сравнению с «сырой» конфигурацией.

Чек‑лист перед «боевым» запуском

Этот список можно пройти за час, и он закроет 80% проблем с доставляемостью:

  • Сервер имеет статический публичный IP. На временных/динамических IP отправка почти всегда проблемна. Если нужен выделенный адрес — подойдёт VDS.
  • PTR на IP указывает на ваш FQDN, а FQDN резолвится обратно в тот же IP.
  • HELO/EHLO равен FQDN, которым владеете вы, и он резолвится.
  • Опубликована SPF‑запись домена отправителя, включающая IP вашего хоста и/или его A/MX. Политика -all после тестов.
  • Включён оппортунистический TLS для исходящих и корректные корневые сертификаты.
  • Postfix проходит postfix check без ошибок, postconf -n не содержит неожиданностей.
  • Логи чистые: нет постоянных deferral по причине rDNS, HELO, TLS, SPF.

Немного практики: минимальный фрагмент main.cf

Для ориентира приведу сжатый набор параметров, которые часто оказываются критичными именно для deliverability. Не копируйте бездумно — сверяйте с вашей системой и задачей:

myhostname = mail.example.ru
mydomain = example.ru
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
smtp_helo_name = $myhostname
smtp_tls_security_level = may
smtp_tls_loglevel = 1
smtp_tls_note_starttls_offer = yes
smtpd_tls_security_level = may

После изменения параметров выполните перезапуск службы и проверку логов. Далее протестируйте исходящие соединения на несколько крупных MX, чтобы увидеть, как вас встречают в реальном мире.

Терминал с логами Postfix и параметрами SMTP/TLS

Куда двигаться дальше

Когда база закрыта и письма перестали отваливаться на rDNS/HELO/SPF, самое время заняться углублениями: DKIM‑подписи, политика DMARC, мониторинг отчётов, MTA‑STS и TLSRPT, подробная настройка рейтинговых ограничителей и очередей Postfix, гигиена контента (содержимое, ссылки, вложения), серые списки. Но фундамент остаётся тем же: чистый DNS, аккуратный HELO и предсказуемый SMTP‑диалог.

Если вы поднимаете почтовый сервер на новом хосте, начинайте именно с этого чек‑листа. Практика показывает: исправление PTR, приведение HELO к FQDN и публикация адекватной SPF‑записи дают мгновенный и измеримый прирост deliverability — без сложных интеграций и долгих расследований.

FastFox VDS
Облачный VDS-сервер в России
Аренда виртуальных серверов с моментальным развертыванием инфраструктуры от 195₽ / мес
FastFox SSL
Надежные SSL-сертификаты
Мы предлагаем широкий спектр SSL-сертификатов от GlobalSign по самым низким ценам. Поможем с покупкой и установкой SSL бесплатно!
Поделиться статьей

Вам будет интересно

Нагрузочное тестирование staging и prod: практический гид для админов OpenAI Статья написана AI (GPT 5)

Нагрузочное тестирование staging и prod: практический гид для админов

Разберем, как системно подойти к нагрузочному тестированию веб‑проектов: чем реально отличается staging от prod, как строить профи ...
VDS: шифрование диска с LUKS2 и autounlock без ручного ввода пароля OpenAI Статья написана AI (GPT 5)

VDS: шифрование диска с LUKS2 и autounlock без ручного ввода пароля

Разберём, как включить шифрование диска с LUKS2 на VDS и не вводить пароль после каждой перезагрузки. Пошагово создадим LUKS2-том, ...
cron vs systemd timers: что выбрать для задач и healthcheck OpenAI Статья написана AI (GPT 5)

cron vs systemd timers: что выбрать для задач и healthcheck

Cron до сих пор жив на большинстве серверов, но в современных Linux-дистрибутивах с systemd таймеры дают более управляемый и наблю ...