2.2. Модель расширений
2.2.1. Базовые вопросы
В рамках программы, начатой в 1990, приблизительно через 10 лет после выпуска RFC 821, протокол был обновлен за счет добавления модели «расширения услуг», позволяющей клиентам и серверам согласовать использование общих функций, выходящих за пределы исходной спецификацити SMTP. Механизм расширения SMTP определяет способ согласования расширенных возможностей клиента и сервера SMTP; сервер может информировать клиента о поддерживаемых расширениях.
Современные реализации SMTP должны поддерживать базовые механизмы расширения. Например, сервер должен поддерживать команды EHLO, даже если в нем не реализовано соответствующее расширение, а клиентам следует использовать команду EHLO вместо HELO. В тех случаях, когда для интероперабельности не требуется явное использование HELO, настоящая спецификация всегда рассматривает только команда EHLO.
Протокол SMTP широко распространен и высококачественные реализации обеспечивают высокий уровень устойчивости к ошибкам. Однако сообщество Internet сейчас считает достаточно важными некоторые службы, которых просто не было в момент создания протокола. При добавлении поддержки таких служб должна обеспечиваться возможность приемлемой работы старых реализаций протокола. К числу таких расширений относятся:
- команда EHLO взамен прежней команды HELO;
- реестр расширений сервиса SMTP;
- дополнительные параметры команд MAIL и RCPT;
- возможность замены команд, определенных в данном протоколе (таких, как DATA) при передаче символов, отличных от ASCII (RFC 3030 [20]).
Сильные стороны протокола SMTP обусловлены, прежде всего, его простотой. Опыт использования множества протоколов показывает, что протоколы с меньшим числом опций получают более широкое распространение, нежели усложненные протоколы.
Каждое расширение, независимо от обеспечиваемых им преимуществ, должно быть тщательно проверено в части его реализации, развертывания и интероперабельности. Во многих случаях стоимость расширения сервиса SMTP может многократно превысить достигаемые преимущества.