Страница 3 из 6
Команды SMTP протокола
Простой протокол передачи почты обеспечивает двухсторонний обмен сообщениями между локальным клиентом и удаленным сервером МТА. МТА-клиент шлет команды МТА-серверу, а он, в свою очередь, отвечает клиенту. Другими словами, протокол SMTP требует получать ответы (они описаны в этой главе) от приемника команд SMTP. Обмен командами и ответами на них называется почтовой транзакцией (mail transaction). Данные, как мы уже говорили, передаются в формате NVT ASCII. Кроме того, команды тоже передаются в формате NVT ASCII. Команды передаются в форме ключевых слов, а не специальных символов, и указывают на необходимость совершить ту или иную операцию. В табл.1 приведен список ключевых слов (команд), определенный в спецификации SMTP - RFC 821. Таблица 1. Команды простого протокола передачи почты (SMTP)
Команда |
Обязательна |
Описание |
HELO |
X |
Идентифицирует модуль-передатчик
для модуля-приемника (hello). |
MAIL |
X |
Начинает почтовую транзакцию,
которая завершается передачей данных в один или
несколько почтовых ящиков (mail). |
RCPT |
X |
Идентифицирует получателя
почтового сообщения (recipient). |
DATA |
|
Строки, следующие за этой
командой, рассматриваются получателем как
данные почтового сообщения. В случае SMTP, почтовое
сообщение заканчивается комбинацией символов:
CRLF-точка-CRLF. |
RSET |
|
Прерывает текущую почтовую
транзакцию (reset). |
NOOP |
|
Требует от получателя не
предпринимать никаких действий, а только выдать
ответ ОК. Используется главным образом для
тестирования.(No operation). |
QUIT |
|
Требует выдать ответ ОК и
закрыть текущее соединение. |
VRFY |
|
Требует от приемника
подтвердить, что ее аргумент является
действительным именем пользователя. (См.
примечание.). |
SEND |
|
Начинает почтовую транзакцию,
доставляющую данные на один или несколько
терминалов (а не в почтовый ящик). |
SOML |
|
Начинает транзакцию MAIL или SEND,
доставляющую данные на один или несколько
терминалов или в почтовые ящики. |
SAML |
|
Начинает транзакцию MAIL и SEND,
доставляющие данные на один или несколько
терминалов и в почтовые ящики. |
EXPN |
|
Команда SMTP-приемнику
подтвердить, действительно ли аргумент является
адресом почтовой рассылки и если да, вернуть
адрес получателя сообщения (expand). |
HELP |
|
Команда SMTP-приемнику вернуть
сообщение-справку о его командах. |
TURN |
|
Команда SMTP-приемнику либо
сказать ОК и поменяться ролями, то есть стать STMP-
передатчиком, либо послать сообщение-отказ и
остаться в роли SMTP-приемника. |
Примечание: В RFC 821 сказано, что команда VRFY не является обязательной для минимального набора команд SMTP. Однако в RFC 1123 <Требования для сетевых компьютеров Internet - приложения и обеспечение работы> (Requirements for Internet Hosts - Application and Support,Braden, 1989), команда VRFY фигурирует в списке обязательных для Internet команд реализации SMTP.
В соответствии со спецификацией команды, помеченные крестиком (X) в табл.1, обязаны присутствовать в любой реализации SMTP. Остальные команды SMTP могут быть реализованы дополнительно. Каждая SMTP-команда должна заканчиваться либо пробелом (если у нее есть аргумент), либо комбинацией CRLF. В описании команд употреблялось слово <данные", а не <сообщение>. Этим подчеркивалось, что, кроме текста, SMTP позволяет передавать и двоичную информацию, например графические или звуковые файлы. Другими словами, SMTP способен передавать данные любого содержания, а не только текстовые сообщения. Это значит, что, рассматривая вопросы, касающиеся SMTP, не забывайте, что термин "сообщениее" обозначает не только текстовые данные.
|