SMTP: как работает протокол отправки email
SMTP (Simple Mail Transfer Protocol) — протокол передачи email-сообщений от приложения или почтового клиента на сервер отправителя и между почтовыми серверами. Он отвечает за отправку и пересылку письма, но не за его получение пользователем.
Как работает SMTP
SMTP работает по клиент-серверной модели. Клиентом может быть почтовое приложение, маркетинговая платформа или сервер отправителя, а сервером — узел, который принимает сообщение и передаёт его дальше.
Обычно письмо проходит такой путь:
Приложение или почтовый клиент → сервер отправителя → сервер получателя → почтовый ящик
Сервер отправителя определяет подходящий сервер получателя по MX-записям домена и устанавливает с ним соединение. Если письмо проходит через промежуточный сервер, тот действует как SMTP-релей и передаёт сообщение дальше.
Базовый порядок обмена описан в спецификации протокола SMTP — RFC 5321:
Устанавливается соединение. SMTP-клиент подключается к серверу по TCP. Сервер отвечает кодом
220, подтверждая готовность к обмену.Клиент представляется серверу. Команда
EHLOпередаёт имя клиента, а сервер возвращает список поддерживаемых расширений. Старые реализации могут использовать командуHELO.Настраиваются защита и доступ. Если сервер поддерживает
STARTTLS, соединение переводят в зашифрованный режим. При отправке через сервер провайдера или компании клиент обычно проходит аутентификацию.Указывается отправитель. Команда
MAIL FROMзадаёт обратный адрес SMTP-конверта, который используют для сообщений о недоставке. Этот адрес может отличаться от видимого получателю поляFrom.Указываются получатели. Команда
RCPT TOпередаётся отдельно для каждого адреса. Сервер может принять одних получателей и отклонить других.Передаётся письмо. После команды
DATAклиент отправляет служебные заголовки и содержимое сообщения. Передача завершается строкой с одной точкой.Сервер сообщает результат. Ответ
250после передачи данных означает, что сервер принял сообщение и взял на себя его дальнейшую обработку. КомандаQUITзавершает SMTP-сессию.
Ответы SMTP-сервера делятся на три основные группы:
| Первая цифра кода | Что означает |
|---|---|
| 2xx | Команда выполнена, сообщение или получатель приняты |
| 4xx | Временная ошибка: отправку обычно повторяют позже |
| 5xx | Постоянная ошибка: для новой попытки нужно изменить адрес, сообщение или настройки |
Ответ 250 подтверждает приём сообщения SMTP-сервером, но не гарантирует его появления во «Входящих». После приёма почтовый провайдер проверяет письмо по своим правилам.
Информационная система — например, сайт, CRM, интернет-магазин или маркетинговая платформа — может передать письмо сервису отправки через SMTP или API.
SMTP подходит для систем, которые работают со стандартным почтовым подключением.
API используют, когда приложение напрямую взаимодействует с конкретным сервисом отправки через его программный интерфейс. После приёма запроса сервис передаёт сформированное письмо в почтовую инфраструктуру.
Как письмо передаётся по SMTP
Чем SMTP отличается от IMAP и POP3
SMTP используют для отправки сообщений. IMAP и POP3 решают другую задачу — дают почтовому клиенту доступ к уже полученным письмам.
| Протокол | Основная задача | Как работает с письмами |
|---|---|---|
| SMTP | Отправка и пересылка | Передаёт сообщение от клиента серверу и между серверами |
| IMAP | Работа с почтой на сервере | Синхронизирует письма, папки и статусы между устройствами |
| POP3 | Загрузка почты | Скачивает сообщения с сервера на устройство |
Порты SMTP
SMTP-порт указывает администратор, разработчик или другой специалист при подключении почтового клиента, платформы или SMTP-релея. Назначение портов пригодится при настройке канала и диагностике ошибок.
| Порт | Где используют |
|---|---|
| 25 | Для передачи почты между SMTP-серверами. Для отправки из пользовательских приложений и некоторых облачных сред порт может быть недоступен |
| 587 | Для передачи письма от приложения или почтового клиента на сервер отправителя. Соединение обычно защищают с помощью STARTTLS. Назначение порта описано в RFC 6409 |
| 465 | Для передачи письма с TLS-шифрованием, которое устанавливается сразу при подключении. Такой способ описан в RFC 8314 |
Некоторые сервисы также предлагают порт 2525 как запасной. Он не стандартизирован для SMTP, поэтому его используют только тогда, когда он указан в документации выбранного сервиса.
Шифрование и аутентификация
Без шифрования SMTP-трафик можно перехватить — в том числе передаваемые при авторизации учётные данные. Для защиты соединения используют один из двух способов установки TLS-соединения (Transport Layer Security) — в зависимости от настроек SMTP-сервера.
STARTTLS начинает обмен как обычное SMTP-соединение, после чего клиент и сервер переходят в зашифрованный режим. Обычно этот способ используют при подключении через порт 587.
Неявный TLS устанавливает защищённое соединение сразу при подключении, обычно через порт 465.
SMTP-аутентификация подтверждает право клиента отправлять почту через сервер. Некоторые механизмы передают логин и пароль в кодировке Base64, но кодирование не защищает данные от перехвата. Поэтому такие механизмы используют только внутри TLS-соединения. Расширение SMTP для аутентификации описано в RFC 4954.
SMTP-аутентификацию не следует путать с аутентификацией домена. В первом случае сервер проверяет право клиента отправлять через него письма. Во втором принимающий провайдер использует SPF, DKIM и DMARC, чтобы проверить отправляющую инфраструктуру и домен письма.
Современные почтовые системы используют расширенную версию протокола — ESMTP. Через ответ на команду EHLO сервер сообщает о доступных расширениях, например STARTTLS и AUTH. ESMTP не заменяет SMTP, а дополняет его новыми возможностями.
Роль SMTP в доставляемости
В цепочке доставки SMTP отвечает за передачу письма между серверами и получение технического результата отправки. Принимающий сервер может принять сообщение, временно отложить его обработку или отклонить. Эти результаты отражаются в кодах ответа и сообщениях о возвратах.
После приёма письма почтовый провайдер проводит дополнительные проверки. Он оценивает настройки домена отправителя, репутацию домена и IP-адреса, качество базы, объём отправки, содержание письма и реакцию получателей. От сочетания этих факторов зависит, будет ли сообщение отклонено на последующих этапах или попадёт во «Входящие» либо спам.
Причины недоставки писем в отчёте Altcraft
Отправка email через AKMTA
В Altcraft Platform для отправки email по SMTP используется собственный транспортный модуль AKMTA — Altcraft Mail Transfer Agent. В нём настраивают скорость отправки и поведение при отрицательных ответах почтовых провайдеров.
AKMTA может передавать письма непосредственно почтовым провайдерам или через внешний SMTP-релей. Для релея указывают адрес и порт сервера, способ аутентификации и режим шифрования.
Выбор зависит от инфраструктуры компании. При прямой отправке она управляет собственными серверами и правилами их работы, а релей передаёт сообщения через выбранный внешний сервис или корпоративный шлюз.
Подключение SMTP-релея в Altcraft
В on-premise-версии Altcraft AKMTA разворачивается в инфраструктуре компании. Администраторы настраивают серверы отправки и правила их работы. Подробности описаны в документации по email-каналу.
Разберитесь в настройке email-рассылок, автоматических сценариях и аналитике на бесплатном курсе Altcraft.
Заключение
SMTP передаёт email-сообщения от приложения к серверу отправителя и между почтовыми серверами. Команды протокола выполняются автоматически, но их последовательность объясняет, как серверы принимают и передают письмо и на каком этапе может возникнуть ошибка. Для безопасной отправки используют подходящий порт, TLS и аутентификацию, а причины недоставок определяют по ответам серверов и сообщениям о возвратах.


