Почтовый сервер для транзакционных писем: чек-лист перед запуском
Письмо о сбросе пароля может успешно пройти через SMTP и всё равно не попасть во входящие. Перед запуском проверьте DNS-аутентификацию, обработку отказов, репутацию отправителя и мониторинг — иначе сбой заметят раньше вас.

Транзакционное письмо может получить ответ SMTP «принято», но оказаться в спаме или не дойти до пользователя: успешная передача сообщения не гарантирует доставку во входящие. Этот чек-лист поможет проверить путь от приложения до почтового ящика до продакшена — независимо от того, отправляете вы через свой MTA или внешний SMTP-релей.
Сначала выберите, кто отвечает за отправку
У вас есть два основных варианта: обслуживать MTA самостоятельно или передать отправку специализированному провайдеру. В первом случае больше контроля, но и больше обязанностей: от DNS и очередей до IP-репутации и обработки жалоб. Релей снимает часть инфраструктурной работы, однако добавляет зависимость от провайдера, его лимитов и правил.
| Вариант | Что получаете | Цена решения |
|---|---|---|
| Собственный MTA, например Postfix 3.x | Контроль над очередями, конфигурацией и инфраструктурой | Нужно поддерживать сервер, IP-репутацию, DNS, TLS и обработку отказов. Конкретные директивы сверяйте с документацией установленной версии. |
| Внешний SMTP-релей | Готовую отправку, часто — статистику доставок и интерфейс управления | Зависимость от стороннего сервиса, его тарифов, квот и требований к аккаунту. |
| Смешанная схема | Возможность отправлять через релей, сохраняя собственную логику приложения и мониторинга | Появляются два контура для диагностики; резервный маршрут нужно проектировать и проверять отдельно. |
Таблица не означает, что один вариант доставляет лучше другого. На результат влияют домен, репутация отправителя, качество адресов и реакция получателей. Ниже — проверки для любого варианта. Для настроек MTA ориентируйтесь на документацию именно вашей версии: здесь разбирается готовность системы, а не конфигурация конкретного продукта.
Чек-лист перед продакшеном
- Разделите отправителей. Определите домен и адрес отправителя для транзакционных сообщений, например уведомлений о заказе или сбросе пароля. Не смешивайте их бездумно с рассылками: жалобы на маркетинговые письма могут повлиять на доставку важных уведомлений. Проверка: в тестовом письме видны ожидаемые From и домен отправки, а пользователь не получает сообщения с адреса разработчика.
- Настройте SPF. Опубликуйте DNS-запись SPF для домена, который используется в envelope sender, то есть в SMTP-адресе возврата, а не просто в заголовке From. Разрешите отправку только тем системам, которые действительно посылают почту от имени домена. Не создавайте несколько SPF-записей для одного имени: получатели могут трактовать такую конфигурацию как ошибку. Проверка: у домена одна актуальная SPF-запись, а тестовое письмо проходит SPF-проверку.
- Подпишите сообщения DKIM. Настройте подпись на отправляющем сервере или у релея и опубликуйте соответствующий публичный ключ в DNS. Убедитесь, что выбранный домен подписи согласуется с доменом отправителя, если рассчитываете на DMARC. Проверка: получатель показывает DKIM=pass и ожидаемый домен подписи. После смены ключа тестируйте DNS и подпись до отключения старого ключа.
- Добавьте DMARC и начните с наблюдения. DMARC проверяет согласованность домена видимого From с результатами SPF и/или DKIM. Сначала используйте режим мониторинга, разберите отчёты и убедитесь, что легитимные источники учтены. Только после этого ужесточайте политику. Резкий переход к отклонению может заблокировать письма от забытых систем — например, сервиса чеков или CRM. Проверка: отчёты приходят на контролируемый адрес, а все легальные источники отправки учтены.
- Проверьте TLS, имя сервера и обратную DNS-запись. При собственной отправке проверьте, что сервер принимает SMTP-соединения по TLS, предъявляет действительный сертификат и использует согласованное имя в EHLO. Для исходящего IP уточните у хостинг-провайдера наличие PTR-записи и возможность настроить её. Проверка: тестовые SMTP-соединения не выдают ошибок сертификата, а имя отправителя и DNS-настройки не противоречат друг другу. TLS защищает передачу, но сам по себе не гарантирует попадание во входящие.
- Разведите временные и постоянные ошибки. Ответы класса 4xx обычно означают временную проблему: сообщение можно повторить позже. Ответы 5xx, как правило, требуют исправить причину или адрес, а не бесконечно повторять отправку. Настройте очереди и сроки повторов по документации вашего MTA или релея. Проверка: искусственно вызванный временный отказ не теряет сообщение, а постоянный отказ не создаёт бесконечную очередь.
- Обрабатывайте возвраты и жалобы. Настройте отдельный адрес или канал для bounce-сообщений — уведомлений о недоставке. Адреса с постоянным отказом исключайте из отправки; жалобы на спам также должны попадать в процесс подавления повторных писем. Проверка: тестовый недоставленный адрес отображается в журнале как отказ, а система не продолжает слать на него одинаковые уведомления.
- Добавьте мониторинг и ограничение скорости. Отслеживайте число отправок, доставок, временных и постоянных отказов, задержку в очереди и жалобы. Пороговые значения определите по своему обычному трафику: универсальной безопасной цифры для всех доменов нет. Ограничьте скорость, чтобы ошибка в приложении не породила лавину повторов. Проверка: тестовая ошибка вызывает сигнал, а очередь и причины отказа видны без доступа к почтовому ящику пользователя.
- Прогоните сценарии на реальных получателях. Проверьте письма на нескольких крупных почтовых сервисах и корпоративном домене. Отдельно проверьте сброс пароля, подтверждение заказа, повторную отправку, неверный адрес и временный отказ. Проверка: заголовки показывают SPF, DKIM и DMARC, письмо читаемо на мобильном устройстве, ссылки ведут туда, куда задумано, а повторное событие не создаёт дубликаты.
Главный критерий готовности — не «SMTP ответил 250», а способность системы объяснить, что произошло с каждым письмом: принято, отложено, отклонено или подавлено после жалобы.
Что чаще всего ломается после запуска
Приложение считает письмо доставленным слишком рано
Успешный ответ принимающего SMTP-сервера означает, что сообщение принято к дальнейшей обработке, а не обязательно доставлено в папку «Входящие». Разделяйте статусы «передано серверу», «доставлено» и «получен отказ» в логах и интерфейсе поддержки. Не показывайте пользователю подтверждение доставки, если система знает только о передаче сообщения релею.
Очередь растёт, а причина скрыта
Если мониторинг считает только число писем за минуту, временные отказы останутся незаметными до накопления очереди. Записывайте SMTP-код ответа и этап сбоя, но не сохраняйте содержимое писем, пароли сброса и персональные данные без необходимости. Для диагностики достаточно идентификатора события, времени, домена получателя и результата отправки.
Резервный маршрут делает ситуацию хуже
Переключение на второй SMTP-сервис полезно только тогда, когда он готов отправлять от вашего домена: у него настроены SPF, DKIM и нужные параметры DMARC-согласованности. Иначе автоматический failover может превратить частичный сбой в массовый отказ. Проверяйте переключение отдельно и следите, чтобы приложение не отправляло одно событие по обоим маршрутам.
Когда выбирать свой сервер, а когда релей
Внешний релей обычно удобнее, если команде важны скорость запуска и готовая наблюдаемость, а управлять почтовой инфраструктурой некому. Собственный MTA имеет смысл, если у вас есть опыт его сопровождения, понятная причина контролировать маршрут и ресурс на постоянный мониторинг. Смешанную схему выбирайте не «на всякий случай», а когда резервирование действительно нужно и вы готовы регулярно проверять его.
В любом варианте перед запуском зафиксируйте владельца DNS-записей, ответственного за жалобы и процедуру остановки отправки. Это дешевле, чем разбираться после блокировки домена или накопления очереди.
Сноска. DMARC — политика проверки подлинности почты и согласованности домена видимого отправителя с SPF или DKIM. Она также позволяет получать отчёты о результатах проверок, но не исправляет ошибочную конфигурацию автоматически.
Что делать дальше
Начните с тестового домена или поддомена, пройдите чек-лист и сохраните результаты проверок DNS-аутентификации. Затем отправьте небольшую партию реальных транзакционных сообщений, наблюдая за отказами, задержкой очереди и жалобами. Расширяйте объём только после того, как команда умеет найти причину каждой ошибки и остановить отправку при сбое.
Проверки описаны для стандартов SMTP, SPF, DKIM и DMARC, а не для конкретной сборки MTA. Если используете Postfix, сверьте синтаксис и поведение с документацией установленной версии; в managed-релее те же проверки выполняйте через его настройки и журналы.
Тендерный специалист 44-ФЗ / 223-ФЗ: Разбор PDF-документации закупки, поиск «заточек» под поставщика, чек-лист заявки.
Спросить за 20 ₽Источники: RFC 5321: Simple Mail Transfer Protocol, Google Workspace: рекомендации для отправителей писем
Частые вопросы
Если SMTP-сервер ответил 250, письмо точно дошло?
Можно ли настроить SPF, DKIM и DMARC только один раз?
Нужен ли собственный почтовый сервер для транзакционных писем?
Что делать, если письмо попало в спам, хотя SPF и DKIM прошли?
Можно ли отправлять транзакционные и рекламные письма с одного домена?
Нужно ли обязательно настраивать PTR для своего IP?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.