Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Протокол SMTP



Главной целью протокола Simple Mail Transfer Protocol (SMTP, RFC-821, -822) является надежная и эффективная доставка электронных почтовых сообщений. SMTP - это довольно независимая субсистема, требующая только надежного канала связи. Средой для SMTP может служить отдельная локальная сеть, система сетей или вся сеть Internet.

Протокол SMTP базируется на следующей модели коммуникаций: в ответ на запрос пользователя почтовая программа-отправитель устанавливает двухстороннюю связь с программой-приемником (TCP, порт 25). Получателем может быть конечный или промежуточный адресат. SMTP-команды генерируются отправителем и посылаются получателю. Для каждой команды должен быть получен отклик.

Когда канал организован, отправитель посылает команду MAIL, идентифицируя себя. Если получатель готов к приему сообщения, он посылает положительный отклик. Далее отправитель посылает команду RCPT, идентифицируя получателя почтового сообщения. Если получатель может принять сообщение для оконечного адресата, он снова выдает положительный отклик. В противном случае он отвергает получение сообщения для данного адресата, но не вообще почтовой посылки. Взаимодействие с почтовым сервером возможно и в диалоговом режиме.

В следующей таблице приведено несколько команд, которые используются в SMTP:

Команда Функция
Helo <сервер-отправитель> Идентифицирует SMTP-сервер отправителя
Mail from: <адрес отправителя> Задает адрес отправителя
Rcpt to: <адрес получателя> Задает адрес получателя
Data Указывает на начало сообщения
Rset Прерывает передачу сообщения
Vrfy <строка> Проверяет имя пользователя
Help [строка] Запрашивает on-line помощь
Quit Завершает SMTP-сеанс

Команды SMTP

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

Прямая доставка позволяет SMTP пересылать почту, не полагаясь на промежуточные хосты. Недостаток прямой доставки состоит в том, что на обоих кончах должны непрерывно поддерживать работу с почтой. Это не касается почтовых Интернет-серверов, поскольку они постоянно включены и настроены на непрерывную отправку-прием сообщений. Для считывания сообщенй с таких серверов на компьютеры пользователей применяется протокол POP.

Но не в каждой сети используется TCP/IP и SMTP. Чтобы предоставить пользователям услуги электронной почты в таких случаях, применяют так называемые почтовые шлюзы, которые дают возможность абоненту отправлять сообщения в сети, не работающие с протоколами TCP/IP (Fido, Goldnet, AT50).

2.2 Протокол POP (Post Office Protocol)

Протокол обмена почтовой информацией POP предназначен для разбора почты из почтовых ящиков пользователей на их рабочие места при помощи программ-клиентов. Если по протоколу SMTP пользователи отправляют корреспонденцию через Internet, то по протоколу POP пользователи получают корреспонденцию из своих почтовых ящиков на почтовом сервере.

Пользователи ПК могут соединится с почтовым сервером через Telnet и читать почту, используя ПК в качестве терминала. Это широко распространенный способ, особенно для систем с DOS.

Широкое распространение получили две версии POP – POP2 и POP3. Протокол POP2 определен в стандарте RFC 937 и использует порт 109. POP3 определен в RFC 1725 и использует порт 110. Это несовместимые протоколы, в которых применяются разные команды, но они выполняют одинаковые функции.

В настоящее время чаще всего используется протокол POP3.

В следующих таблицах сведены сведения о командах применяющихся в протоколах POP2 и POP3:

Команда Функция
Helo пользователь пароль Идентифицирует счет пользователя
Fold почтовая_папка Выбирает почтовую папку
Read [n] Читает почту, начиная с сообщения n
Retr Извлекает сообщение
Acks Сохранияет сообщение
Ackd Удаляет сообщение
Quit Завершает сеанс POP2

Команды POP2

Команда Функция
User Посылает имя счета пользователя
Pass Посылает пароль пользователя
Stat Запрос информации о количестве непрочитанных сообщений/байтов
Retr n Пересылка сообщения номер n
Dele n Удаление сообщения номер n
Last Запрос номера последнего прочитанного сообщения
List [n] Запрос информации о размере сообщения номер n или о размере всех сообщений
Rset Восстанавливает удаленные сообщения и устанавливает счетчик сообщений в 1
Top n m Печатает заголовок и m строк сообщения номер n
Quit Завершение сеанса POP3

Команды POP3

РОРЗ-сервис, как правило, устанавливается на 110-й ТСР-порт сервера, который будет находится в режиме ожидания входящего соединения. Когда клиент хочет воспользоваться РОРЗ-сервисом, он просто устанавливает TCP-соединение с портом 110 этого хоста. После установления соединения сервис РОРЗ отправляет подсоединившемуся клиенту приветственное сообщение. После этого клиент и сервер начинают обмен командами и данными. По окончании обмена РОРЗ-канал закрывается.

Ответы РОРЗ-сервера на команды состоят из строки статус- индикатора, ключевого слова, строки дополнительной информации и символов завершения строки - <CRLF>. Длина строки ответа может достигать 512 символов. Строка статус -индикатора принимает два значения: положительное ("+ОК") и отрицательное ("-ERR"). Любой сервер РОРЗ обязан отправлять строки статус-индикатора в верхнем регистре, тогда как другие команды и данные могут приниматься или отправляться как в нижнем, так и в верхнем регистрах.

Ответы РОРЗ-сервера на отдельные команды могут составлять несколько строк. В этом случае строки разделены символами <CRLF>. Последнюю строку информационной группы завершает строка, состоящая из символа "." (код - 046) и <CRLF>, т. е. последовательность "CRLF.CRLF".

РОРЗ-сессия состоит из нескольких частей. Как только открывается TCP-соединение и РОРЗ-сервер отправляет приветствие, сессия должна быть зарегистрирована – состояние аутентификации (AUTHORIZATION state). Клиент должен зарегистрироваться в РОРЗ-сервере, т. е. ввести свой идентификатор и пароль.

После этого сервер предоставляет клиенту его почтовый ящик и открывает для данного клиента транзакцию - состояние начала транзакции обмена (TRANSACTION state). На этой стадии клиент может считать и удалить почту своего почтового ящика.

После того как клиент заканчивает работу (передает команду QUIT), сессия переходит в состояние UPDATE - завершение транзакции. В этом состоянии РОРЗ-сервер закрывает транзакцию данного клиента (на языке баз данных - операция COMMIT) и закрывает TCP-соединение.

В случае получения неизвестной, неиспользуемой или неправильной команды, РОРЗ-сервер должен ответить отрицательным состоянием индикатора.

РОРЗ-сервер может использовать в своей работе таймер контроля времени соединения. Этот таймер отсчитывает время "бездействия" ("idle") клиента в сессии от последней переданной команды. Если время сессии истекло, сервер закрывает TCP-соединение, не переходя в состояние UPDATE (иными словами, откатывает транзакцию или на языке баз данных - выполняет ROLLBACK).





Дата публикования: 2015-01-10; Прочитано: 387 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...