Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
В.И.Воловач, А.В.Савенко. УМКД по дисц. Сети ЭВ....doc
Скачиваний:
230
Добавлен:
17.12.2018
Размер:
9.55 Mб
Скачать

4.9. Справочные данные

Синтаксис команд протокола 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>

Таблица П.6

Команды протокола SMTP

Команда

Обязательна

Описание

HELO

да

Идентифицирует модуль передатчик для модуля-приемника (hello)

MAIL

да

Начинает почтовую транзакцию, которая завершается передачей данных в один или несколько почтовых ящиков (mail)

RCPT

да

Идентифицирует получателя почтового сообщения (recipient)

DATA

Строки, следующие за этой командой, рассматриваются получателем как данные почтового сообщения. В случае SMTP, почтовое сообщение заканчивается комбинацией символов: CRLF-точка-CRLF

RSET

Прерывает текущую почтовую транзакцию (reset)

NOOP

Требует от получателя не предпринимать никаких действий, а только выдать ответ ОК. Используется для тестирования. (No operation)

QUIT

Требует выдать ответ ОК и закрыть текущее соединение

VRFY

Требует от приемника подтвердить, что ее аргумент является действительным именем пользователя

SEND

Начинает почтовую транзакцию, доставляющую данные на один или несколько терминалов (а не в почтовый ящик)

SOML

Начинает транзакцию MAIL или SEND, доставляющую данные на один или несколько терминалов или в почтовые ящики

SAML

Начинает транзакцию MAIL и SEND, доставляющие данные на один или несколько терминалов и в почтовые ящики

EXPN

Команда SMTP-приемнику подтвердить, действительно ли аргумент является адресом почтовой рассылки, и если да, вернуть адрес получателя сообщения (expand)

HELP

Команда SMTP-приемнику вернуть сообщение-справку о его командах

Описание команд и ответов протокола РОР3.

USER <SP> <name> <CRLF>

Возможные ответы:

+OK name is a valid mailbox

-ERR never heard of mailbox name

Описание. Первый шаг авторизации на сервере. Если ответом на эту команду является строка индикатора «+OK», клиент может отправлять команду PASS – ввод пароля или QUIT – завершить сессию. Если ответом является строка «-ERR», клиент может либо повторить команду USER, либо закрыть сессию. Аргумент: name – строка, идентифицирующая почтовый ящик системы.

PASS <SP> <passw> <CRLF>

Возможные ответы:

+OK maildrop locked and ready

-ERR invalid password

-ERR unable to lock maildrop

Описание. Второй шаг авторизации на сервере. Если ответом на эту команду является строка индикатора «+OK», авторизация прошла успешно и сессия переходит в состояние транзакции. Если ответом является строка «-ERR», то пользователь либо ввел неправильный пароль, либо неверно указал почтовый ящик. Аргумент: passw – строка-пароль.

(Продолжение описания команд и ответов протокола РОР3 приводится после табл. П.7).

Таблица П.7

Коды ответа протокола SMTP

Код

Описание

211

Ответ о состоянии системы или помощь

214

Сообщение-подсказка (помощь)

220 <имя_домена>

Служба готова к работе

221 <имя_домена>

Служба закрывает канал связи

250

Запрошенное действие почтовой транзакции успешно завершилось

251

Данный адресат не является местным; сообщение будет передано по маршруту <forward-path>

354

Начинай передачу сообщения. Сообщение заканчивается комбинацией CRLF-точка-CRLF

421 <имя_домена>

Служба недоступна; соединение закрывается

450

Запрошенная команда почтовой транзакции не выполнена, так как почтовый ящик недоступен

451

Запрошенная команда не выполнена; произошла локальная ошибка при обработке сообщения

452

Запрошенная команда не выполнена; системе не хватило ресурсов

500

Синтаксическая ошибка в тексте команды; команда не опознана

501

Синтаксическая ошибка в аргументах или параметрах команды

502

Данная команда не реализована

503

Неверная последовательность команд

504

У данной команды не может быть аргументов

550

Запрошенная команда не выполнена, так как почтовый ящик недоступен

551

Данный адресат не является местным; попробуйте передать сообщение по маршруту <forward-path>

552

Запрошенная команда почтовой транзакции прервана; дисковое пространство, доступное системе, переполнилось

553

Запрошенная команда не выполнена; указано недопустимое имя почтового ящика

554

Транзакция не выполнена

Продолжение описания команд и ответов протокола РОР3:

QUIT <CRLF>

Возможные ответы:

+OK

Описание. Завершение сессии. При появлении команды QUIT в состоянии транзакции сессия переходит в состояние обновления и осуществляется удаление помеченных сообщений.

STAT <CRLF>

Возможные ответы:

+OK <n> <s>

Описание. Команда STAT используется для просмотра текущего состояния почтового ящика: n – количество сообщений, s – их общий объем. Сообщения, помеченные как удаленные, не учитываются.

LIST [<SP> <mes>] <CRLF>

Возможные ответы:

+OK scan listing follows

<n1> <s1>

<n2> <s2>…

-ERR no such message

Описание. Команда LIST может передаваться как с аргументом mes – номером сообщения, так и без аргумента. Если команда содержит аргумент и сообщение с указанным номером существует, ответом на нее будет «информационная строка», которая содержит номер сообщения n1 и размер сообщения s1 в байтах. Если аргумент не указан – ответом будет список информационных строк ni si обо всех сообщениях в данном почтовом ящике. Сообщения, помеченные как удаленные, в этом списке не приводятся.

RETR <SP> <mes> <CRLF>

Возможные ответы:

+OK message follows

<заголовок и тело сообщения>

-ERR no such message

Описание. Используется для передачи клиенту запрашиваемого сообщения. Аргумент команды: mes – номер сообщения.

DELE <SP> <mes> <CRLF>

Возможные ответы:

+OK message deleted

-ERR no such message

Описание. По команде DELE сообщение с указанным в аргументе mes номером помечается как удаленное. Перенумерация остальных сообщений не производится. Физическое удаление помеченных сообщений происходит только при переходе сессии в стадию обновления.

NOOP <CRLF>

Возможные ответы:

+OK

Описание. Используется для проверки состояния сервера. Никаких действий не производится. Ответ всегда положительный.

RSET <CRLF>

Возможные ответы:

+OK

Описание. По команде RSET со всех сообщений снимаются пометки об удалении.

TOP <SP> <mes> <SP> <n> <CRLF>

Возможные ответы:

+OK

< заголовок сообщения + первые n строк из тела сообщения>

-ERR no such message

Описание. По команде TOP передается заголовок и n первых строк сообщения с номером mes. Если количество строк в сообщении меньше указанного в параметре n, пользователю передается все сообщение. Если n=0, то передается только заголовок.

UIDL [<SP> <mes>] <CRLF>

Возможные ответы:

+OK unique-id listing follows

<№ сообщения1+ ID1, № сообщения2+ ID2, …>

-ERR no such message

Описание. Если указан номер сообщения mes, то передается уникальный идентификатор для этого сообщения. Если аргумент не был передан, то передаются идентификаторы всех сообщений, кроме помеченных для удаления.

Контрольные вопросы

1. Назначение протокола SMTP.

2. Опишите модель работы протокола SMTP.

3. Каковы особенности кодировки почтовых сообщений?

4. Опишите типовую последовательность действий почтового клиента при отправке сообщения.

5. Какие операции должны выполняться во время почтовой транзакции? Какими командами она открывается и закрывается?

6. По каким принципам формируются команды и коды ответов протокола SMTP?

7. Охарактеризуйте модель протокола POP3.

8. Назовите и поясните назначение стадий РОР3-сессии.

9. Опишите формат почтового сообщения.

10. Назовите особенности и методы кодирования информации в почтовых сообщениях.

11. По каким принципам формируются команды и коды ответов протокола РОР3?

12. Какие операции выполняются на стадиях авторизации и обновления?

13. Какие операции выполняются на стадии транзакции?