техническое · ответ с источниками
Расширения ESMTP: Extended Simple Mail Transfer Protocol
Расширения ESMTP — это дополнения к исходному протоколу Simple Mail Transfer Protocol, которые позволяют клиенту и серверу согласовать возможности во время начального рукопожатия. Используя команду EHLO вместо HELO, клиент запрашивает список поддерживаемых расширений и получает доступ к шифрованию, аутентификации и сообщениям большего размера без нарушения обратной совместимости.
Как это работает
Процесс начинается, когда клиент отправляет серверу команду EHLO. Сервер отвечает кодом 250 OK и списком поддерживаемых расширений, например SIZE, STARTTLS или AUTH. Этот этап согласования гарантирует, что обе стороны договорились о возможностях сессии ещё до фактической передачи почты. Если сервер не поддерживает ESMTP, он вернёт ошибку 500 или 502, и клиент откатится к базовой команде HELO.
Почему это важно для отправителей
ESMTP критически важен для безопасности и эффективности современной почты. Без этих расширений отправители не смогли бы использовать STARTTLS для шифрования соединения или SMTP AUTH для подтверждения своей личности перед релеем. Это исключает передачу учётных данных открытым текстом и защищает целостность почтового потока. Отправители, использующие инструменты SendHQ, могут проверить настройки DNS и аутентификации, чтобы убедиться, что их инфраструктура поддерживает необходимые расширения.
Практические замечания
Частая ошибка — не обрабатывать откат с EHLO на HELO, что может приводить к сбоям подключения к устаревшим системам. Кроме того, некоторые файрволы и средства защиты выполняют инспекцию SMTP и могут вырезать расширения EHLO, фактически отключая STARTTLS и переводя соединение в незащищённый режим. Администраторы должны следить за тем, чтобы сетевые посредники не вмешивались в согласование расширений.
Конкретный пример
В типичной сессии клиент отправляет EHLO mail.example.com. Сервер отвечает: 250-smtp.provider.com Hello, 250-SIZE 52428800, 250-STARTTLS, 250-AUTH PLAIN LOGIN. Клиент видит в списке STARTTLS и сразу отправляет команду STARTTLS, чтобы перевести соединение на TLS, прежде чем отправить команду AUTH с учётными данными.
Совместимость и стандарты
ESMTP сохраняет строгую обратную совместимость с исходной спецификацией SMTP. Если клиент слишком старый и не понимает EHLO, сервер продолжает работать с базовыми командами SMTP. Такой многоуровневый подход позволяет глобальной почтовой экосистеме развиваться и внедрять новые стандарты безопасности, не теряя возможности доставлять почту через инфраструктуру самого разного возраста.
Что спрашивают команды
Чем отличаются HELO и EHLO?
HELO используется в базовом SMTP и лишь идентифицирует клиента. EHLO используется в ESMTP: он идентифицирует клиента и запрашивает список поддерживаемых сервером расширений.
Заменяет ли ESMTP протокол SMTP?
Нет, ESMTP — это расширение SMTP. Он добавляет новые возможности, оставаясь совместимым с исходным протоколом для поддержки устаревших систем.
Какие расширения сегодня встречаются чаще всего?
Самые важные расширения — STARTTLS для шифрования, AUTH для аутентификации клиента и SIZE для указания максимального размера сообщения.
Первоисточники
- RFC 5321: простой протокол передачи почты (SMTP) — RFC Editor
- RFC 3207: расширение SMTP для защищённой передачи поверх TLS — RFC Editor
- RFC 4954: расширение SMTP для аутентификации — RFC Editor