Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Главной целью протокола 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!