Кратко

  • RFC 821 задавал три необязательные команды, делавшие вывод на терминал, запись в почтовый ящик либо оба результата частью семантики SMTP-транзакции.
  • Критерии успеха различались: SEND зависел от терминала, SOML принимал любой из двух путей, а SAML зависел от ящика, даже если также пытался вывести текст.
  • MX мог знать маршрут почты, не управляя экраном пользователя; позднейшие стандарты SMTP объявили команды устаревшими и сохранили лишь узкую совместимость.

Форма прибытия выбиралась раньше текста

Представим общий хост 1982 года. Получатель вошёл в систему и разрешил терминальные сообщения. Удалённый SMTP-клиент открывает сеанс и вместо обычного MAIL выбирает один из трёх глаголов.

SEND требует доставить данные на терминал. Если пользователь неактивен или не принимает такие сообщения, сервер может временно отказать этому получателю. SOML, Send Or MaiL, пытается использовать терминал, а при отсутствии пользователя переходит к почтовому ящику. SAML, Send And MaiL, при возможности выводит сообщение и в любом случае сохраняет его в ящике.

В RFC 821 это не пожелания в заголовке. Каждая команда начинает транзакцию, за ней следуют RCPT и DATA. Отправитель выбирал характер прибытия раньше адресатов и тела.

Транспорт должен был судить о том, находится ли человек сейчас у системы, разрешает ли прерывание и что считать доставкой: краткий вывод или сохранённую копию.

Успех означал три разных доказательства

SEND успешен лишь тогда, когда данные достигли терминала; почтовый ящик не служит автоматическим резервом. В SOML терминал и ящик взаимозаменяемы, достаточно одного. В SAML ящик обязателен, а вывод дополнительный; успех определяется сохранением.

Следовательно, успешный SEND мог не оставить долговременной копии. Успешный SOML без дополнительной телеметрии не всегда показывал завершившуюся ветвь. Успешный SAML подтверждал ящик, но не то, что пользователь увидел экран.

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

Присутствие было локальным и кратковременным

RFC 821 связывал терминальную доставку с двумя условиями: пользователь активен на этом хосте и принимает терминальные сообщения. Ни одно не было постоянным свойством адреса.

Адрес оставался прежним, когда человек выходил, переходил на другую машину или запрещал прерывания. Маршрут оставался верным, когда принимающий почту хост уже не управлял интерактивным сеансом. Состояние могло поменяться даже между ответом на получателя и концом данных.

Клиент мог запросить SEND, но не объявить присутствие. Публикация команды в EHLO доказывала знание синтаксиса, а не доступность и согласие конкретного человека.

MX отделил знание маршрута от контроля экрана

RFC 1123 сделал реализацию трёх команд необязательной и у отправителя, и у получателя. Его замечание о MX раскрывает архитектурный разрыв.

Mail Exchanger может принимать за домен и знать дальнейший путь, но не иметь прямого доступа к терминалу пользователя. Для адресата после SEND такой сервер мог ответить 251 User Not Local, предупреждая о возможной задержке.

Маршрутная достижимость означала способность взять почту и переслать. Достижимость представления требовала контроля над активным сеансом. MX мог обладать первой без второй.

Распределённая сеть хранения и пересылки переносила ответственность за сообщение. Она не переносила автоматически власть над человеческим вниманием.

EHLO обнаруживал грамматику, не человека

Когда RFC 1425 ввёл модель расширений SMTP, первоначальный реестр перечислил три команды как необязательные сервисы и сделал их имена ключевыми словами EHLO.

Клиент узнавал, понимает ли сервер глагол. Он по-прежнему не знал, вошёл ли адресат, принимает ли прерывания, является ли сервер конечным и состоится ли вывод.

Индикатор возможности легко превращается в зелёную кнопку, а кнопка — в чрезмерное обещание. EHLO описывал язык сервера, не присутствие пользователя.

Совместимость сохранилась, обещание сузилось

В 2001 году RFC 2821 уже называл SEND, SAML и SOML устаревшими. Их редко реализовывали, а изменения рабочих станций и появление других протоколов могли лишить смысла даже существующий код.

Стандарт не оборвал старые системы. Клиентам не следовало предлагать эти сервисы. Серверы могли сохранить их ради совместимости, но обязаны были следовать модели RFC 821 и объявлять имена в EHLO.

RFC 5321 сохраняет этот компромисс. Старые глаголы остаются узнаваемыми, однако обычный SMTP строится вокруг MAIL и формальной передачи ответственности серверу после успешного приёма данных.

Эта ответственность проверяема: принявший обязан доставить или сообщить о неудаче. Ему не нужно утверждать, что человек смотрел на экран в конкретную секунду. Устаревание уменьшило притязание транспорта, не уничтожая всякую совместимость.

Реестр IANA не измеряет развёртывание

В реестрах SMTP IANA до сих пор присутствуют SEND, SOML и SAML, ссылки на RFC 821, отметки о последующем устаревании и MUST NOT для Message Submission.

Эти строки сохраняют совместимые имена. Они не показывают современную долю реализации, присутствие получателя или успех отдельного вывода. Регистрация координирует словарь, но не возвращает его прежние социальные предпосылки.

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

Раньше не значило надёжнее

В небольшой группе тесно связанных хостов команды были разумны. SOML давал естественный запасной путь, SAML сохранял копию. Проектировщики видели реальную разницу между показом и хранением.

Масштаб изменил подходящий слой. С ростом числа релеев, разных рабочих станций и отдельных пользовательских агентов транспорт мог владеть очередью и ответственностью, но не текущим экраном и желанием быть прерванным.

Экран способен загореться сразу и погаснуть без следа. Тихий почтовый ящик можно открыть позже, зато он сохраняет копию и обязательство. Сообщение, опередившее ящик, выигрывало время, но не обязательно находило место, где остаться.

Источники