техническое · ответ с источниками

Что такое SMTP-сервер: определение и технический обзор

SMTP-сервер — приложение, реализующее простой протокол передачи почты (Simple Mail Transfer Protocol) для отправки, приёма и пересылки исходящих писем между клиентами и другими серверами. Он работает как цифровое почтовое отделение: принимает письмо от отправителя и направляет его через интернет на почтовый сервер получателя.

Как это работает

Процесс начинается, когда почтовый клиент (Mail User Agent) отправляет запрос на SMTP-сервер. Сервер использует ряд команд: HELO или EHLO для установки соединения, MAIL FROM для указания отправителя и RCPT TO для указания получателя. После команды DATA сервер передаёт тело и заголовки письма. Если получатель находится в другом домене, сервер запрашивает в DNS MX-запись, чтобы найти сервер назначения, и пересылает письмо туда.

Почему это важно для отправителей

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

Типичные ошибки в эксплуатации

Частая ошибка — неподходящий порт для конкретного типа соединения. Порт 25 часто блокируется интернет-провайдерами для борьбы со спамом, а стандартом для отправки писем служит порт 587. Другой распространённый сбой — отказ от STARTTLS или неявного TLS, из-за чего учётные данные и содержимое писем передаются открытым текстом. Разработчикам также следует хранить учётные данные SMTP в переменных окружения, а не прописывать их в исходном коде приложения.

Конкретный пример реализации

В среде Node.js разработчик может подключиться к SMTP-серверу с помощью библиотеки вроде Nodemailer. Он указывает адрес хоста, например smtp.sendgrid.net, порт 587 и надёжный токен аутентификации. Затем приложение передаёт объект письма на сервер, который берёт на себя сложную маршрутизацию и доставку до конечного адресата. SendHQ предлагает бесплатные инструменты на https://sendhq.cc/tools, которые помогают управлять почтовой инфраструктурой.

Пересылка (relay) и отправка (submission)

SMTP-серверы обычно работают в двух режимах. Серверы отправки (submission) принимают почту от конечных пользователей и выполняют аутентификацию, чтобы проверить личность отправителя. Серверы-релеи передают почту между разными SMTP-серверами в сети. Релей, который принимает почту из любого источника без аутентификации, называется открытым релеем: это серьёзный риск безопасности, и современные почтовые фильтры почти всегда его блокируют.

Что спрашивают команды

Чем SMTP отличается от IMAP?

SMTP используется исключительно для отправки или пересылки исходящей почты. IMAP и POP3 используются для получения писем из почтового ящика на сервере и управления ими.

Какой порт SMTP использовать для защищённой отправки?

Порт 587 — отраслевой стандарт для отправки писем с использованием STARTTLS. Порт 465 используется для неявного TLS, а порт 25 — в основном для передачи между серверами.

Почему мой SMTP-сервер отклоняет мои письма?

Обычно письма отклоняются из-за непройденной аутентификации, попадания IP-адреса в чёрный список или отсутствия DNS-записей, подтверждающих отправителя, таких как SPF и DKIM.

Можно ли запустить собственный SMTP-сервер?

Да, но это требует серьёзных усилий по поддержанию репутации IP-адреса и настройке DNS, чтобы крупные провайдеры не помечали вашу почту как спам.

Первоисточники