Справочные данные. Таблица 4.1 – Команды протокола SMTP Команда Обязательна Описание HELO X Идентифицирует модуль-передатчик для модуля-приемника
Таблица 4.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-приемнику вернуть сообщение-справку о его командах.
Таблица 4.2 – Коды ответа протокола SMTP
Код
Описание
Ответ о состоянии системы или помощь.
Сообщение-подсказка (помощь).
220 <имя_домена>
Служба готова к работе.
221 <имя_домена>
Служба закрывает канал связи.
Запрошенное действие почтовой транзакции успешно завершилось.
Данный адресат не является местным; сообщение будет передано по маршруту <forward-path>.
Начинай передачу сообщения. Сообщение заканчивается комбинацией CRLF-точка-CRLF.
421 <имя_домена>
Служба недоступна; соединение закрывается.
Запрошенная команда почтовой транзакции не выполнена, так как почтовый ящик недоступен.
Запрошенная команда не выполнена; произошла локальная ошибка при обработке сообщения.
Запрошенная команда не выполнена; системе не хватило ресурсов.
Синтаксическая ошибка в тексте команды; команда не опознана.
Синтаксическая ошибка в аргументах или параметрах команды.
Данная команда не реализована.
Неверная последовательность команд.
У данной команды не может быть аргументов.
Запрошенная команда не выполнена, так как почтовый ящик недоступен.
Данный адресат не является местным; попробуйте передать сообщение по маршруту <forward-path>.
Запрошенная команда почтовой транзакции прервана; дисковое пространство, доступное системе, переполнилось.
Запрошенная команда не выполнена; указано недопустимое имя почтового ящика.
Транзакция не выполнена.
Синтаксис команд протокола SMTP (SP – пробел):
HELO <SP> <domain> <CRLF>
MAIL <SP> FROM:<reverse-path> <CRLF>
RCPT <SP> TO:<forward-path> <CRLF>
DATA <CRLF>
RSET <CRLF>
SEND <SP> FROM:<reverse-path> <CRLF>
SOML <SP> FROM:<reverse-path> <CRLF>
SAML <SP> FROM:<reverse-path> <CRLF>
VRFY <SP> <string> <CRLF>
EXPN <SP> <string> <CRLF>
HELP <SP> <string> <CRLF>
NOOP <CRLF>
QUIT <CRLF>
4.7 Контрольные вопросы
1. Назначение протокола SMTP.
2. Опишите модель работы протокола SMTP.
3. Каковы особенности кодировки почтовых сообщений?
4. Опишите типовую последовательность действий почтового клиента при отправке сообщения.
5. Какие операции должны выполняться во время почтовой транзакции? Какими командами она открывается и закрывается?
6. По каким принципам формируются команды и коды ответов протокола SMTP?