Simple Mail Transfer Protocol был
разработан для обмена почтовыми
сообщениями в сети Internet. SMTP не
зависит от транспортной среды и
может использоваться для доставки
почты в сетях с протоколами,
отличными от TCP/IP и Х.25. Достигается
это за счет концепции IPCE (InterProcess
Communication Environment). IPCE позволяет
взаимодействовать процессам,
поддерживающим SMTP в интерактивном
режиме, а не в режиме "STOP-GO". Модель протокола.
Взаимодействие в рамках SMTP
строится по принципу двусторонней
связи, которая устанавливается
между отправителем и получателем
почтового сообщения. При этом
отправитель инициирует соединение
и посылает запросы на обслуживание,
а получатель на эти запросы
отвечает. Фактически, отправитель
выступает в роли клиента, а
получатель - сервера. Рис. 2.2. Схема
взаимодействия по протоколу SMTP Канал связи устанавливается
непосредственно между
отправителем и получателем
сообщения. При таком
взаимодействии почта достигает
абонента в течение нескольких
секунд после отправки. Дисциплины работы и команды
протокола. Обмен сообщениями и
инструкциями в SMTP ведется в
ASCII-кодах. В протоколе определено
несколько видов взаимодействия
между отправителем почтового
сообщения и его получателем,
которые здесь называются
дисциплинами. Наиболее распространенной
дисциплиной является отправка
почтового сообщения, которая
начинается по команде MAIL,
идентифицирующей отправителя: Следующей командой определяется
адрес получателя: После того, как определен
отправитель и получатель почтового
сообщения, можно отправлять
последнее: Команда DATA вводится без
параметров и идентифицирует начало
ввода почтового сообщения.
Сообщение вводится до тех пор, пока
не будет введена строка с точкой в
первой позиции. Согласно стандарту
почтового сообщения RFC822
отправитель передает заголовок и
тело сообщения, которые разделены
пустой строкой. Сам протокол SMTP не
накладывает каких-либо ограничений
на информацию, которая заключена
между командой DATA и "." в первой
позиции последней строки. Приведем
пример обмена сообщениями при
дисциплине отправки почты: Другой дисциплиной, определенной
в протоколе SMTP является
перенаправление почтового
сообщения (forwarding). Если получатель
не найден, но известно его
местоположение, то сервер может
выдать сообщение: Если сервер может сделать только
предположение о дальнейшей
рассылке, то ответ будет несколько
иным: Верификация и расширение адресов
составляют дисциплину верификации.
В ней используются команды VRFY и EXPN.
По команде VRFY сервер подтверждает
наличие или отсутствие указанного
пользователя: Используя команду EXPN можно
получить список местных
пользователей: В список дисциплин, разрешенных
протоколом SMTP входит кроме
отправки почты еще и прямая
рассылка сообщений. В этом случае
сообщение будет отправляться не в
почтовый ящик, а непосредственно на
терминал пользователя, если
пользователь в данный момент
находится за своим терминалом.
Прямая рассылка осуществляется по
команде SEND, которая имеет такой же
синтаксис, как и команда MAIL. Кроме
SEND прямую рассылку осуществляют SOML
(Send or Mail) и SAML (Send and Mail). Назначение
этих команд легко понять из их
названия. Для инициализации канала обмена
почтой и его закрытия используются
команды HELO и QUIT соответственно.
Первой командой сеанса должна быть
команда HELO. Протокол допускает рассылку
почтовых сообщений в режиме
оповещения. Для этой цели
отправитель в адресе получателя
может указать несколько
пользователей или групповой адрес.
Обычно, программное обеспечение SMTP
выбирает эту информацию из
заголовка почтового сообщения и на
ее основе формирует параметры
команд протокола. Если сообщение по какой-либо
причине не может быть разослано, то
получатель формирует сообщение о
неразосланном сообщении: При использовании доменных имен
следует использовать канонические
имена, т.к. некоторые системы не
могут определить синоним по базе
данных named. Кроме выше перечисленных
дисциплин протокол позволяет
отправителю и получателю меняться
ролями друг с другом. Происходит
это по команде TURN. Для отладки или проверки
соединения по SMTP можно
использовать telnet. Для этого вслед
за адресом машины следует ввести
номер порта: 25 порт используется в Internet для
обмена сообщениями по протоколу SMTP.
В интерактивном режиме
пользователь сам изображает
клиента SMTP и может посмотреть
реакцию удаленной машины на его
действия. Назад | Содержание | Вперед
2.2. Протокол SMTP
MAIL FROM: [email protected]
RCPT TO: [email protected]
DATA
S: MAIL FROM: <[email protected]>
R: 250 Ok
S: RCPT TO: <[email protected]>
R: 250 Ok
S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Это текст почтового сообщения
S: .
R: 250
R: 251 User not local;
will forward to <[email protected]>
R: 551 User not local;
please try <[email protected]>
S: VRFY paul
R: 250-Paul Khramtsov<[email protected]>
S: EXPN Example-People
R: 250-Paul Khramtsov<[email protected]>
R: 250-Vladimir Drach-Gorkunov<[email protected]>
S: MAIL FROM:<>
R: 250 Ok
S: RCPT TO: <@host.domain:[email protected]>
R: 250 Ok
S: DATA
R: 354 send the mail data, end with .
S: Date 23 Oct 95 11:23:30
S: From: [email protected]
S: To: <[email protected]>
S:
S: Undelivered message. Your message lost. 550 No such user.
S: .
/users/local>telnet
apollo.polyn.kiae.su 25