Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лабораторная работа №2 Протоколы SMTP и POP3Содержание книги
Поиск на нашем сайте
Лабораторная работа №2 выполняется после изучения материала, посвященного описанию принципов работы почтовых служб SMTP и POP3 [Компьютерные сети. 4-е издание / Э. Таненбаум]. Цель работы: написать GUI приложение для ОС Windows, реализующие работу протоколов SMTP или POP3. Рекомендуемая литература: Компьютерные сети. 4-е издание / Э. Таненбаум. – Спб.: Питер, 2003. – 992 с.:ил. Глава 7 («Прикладной уровень») раздел «Электронная почта». Описание протокола SMTP в спецификации RFC-788 (ARCHIVE\Documents\RFC\rfc788.txt). Описание протокола POP3 в спецификации RFC-1939 (ARCHIVE\Documents\RFC\rfc1939.txt). Протокол электронной почты SMTP Протокол SMTP (Simple Mail Transfer Protocol) был разработан для обмена почтовыми сообщениями в сети Internet. SMTP не зависит от транспортной среды и может использоваться для доставки почты в сетях с протоколами, отличными от TCP/IP и Х.25. Взаимодействие в рамках SMTP строится по принципу двусторонней связи, которая устанавливается между отправителем и получателем почтового сообщения. При этом отправитель инициирует соединение и посылает запросы на обслуживание, а получатель на эти запросы отвечает. Фактически, отправитель выступает в роли клиента, а получатель - сервера. На рис. 2.1 приведена схема взаимодействия клиента и сервера по протоколу SMTP. Рис. 2.1 - Схема взаимодействия по протоколу SMTP Канал связи устанавливается непосредственно между отправителем и получателем сообщения. При таком взаимодействии почта достигает абонента в течение нескольких секунд после отправки. Обмен сообщениями и инструкциями в SMTP ведется в ASCII-кодах. После установления соединения, как правило, используя 25 порт, клиент должен обязательно отправить на сервер команду HELO <HOST>. Эта команда используется для идентификации машины отправителя (HOST) на SMTP сервере. Следующее командой должна идти команда MAIL, идентифицирующая отправителя: MAIL <SP> FROM: <reverse-path> <CRLF> Пример: MAIL FROM: cat@australia.mail.au Эта команда указывает SMTP-серверу начать новую транзакцию по приёму почты. В качестве аргумента, она передаёт на сервер почтовый адрес отправителя письма. Если адрес отправителя правильный и не содержит ошибок, то сервер вернёт ответ «250 OK». Следующей командой идёт команда RCPT: RCPT <SP> TO: <forward-path> <CRLF> Пример: RCPT TO: dog@switzerland.mail.sz Эта команда передаёт на сервер почтовый адрес получателя письма. Если адрес получателя не содержит ошибок, то тогда SMTP сервер вернёт ответ «250 OK». Если в адресе получателя есть ошибка, то сервер вернёт сообщение с кодом 550. Данная команда может повторяться сколь угодно долго по числу получателей, однако современные почтовые сервера вводят ограничения на количество одновременных получателей. Следующей командой идёт команда DATA <CRLF> Если она принимается сервером, то он возвращает сообщение с кодом 354, приглашающее продолжить отправку сообщения. После этого, на сервер можно передавать текст почтового сообщения. Признаком окончания передачи почтового сообщения является символ точки «.» в начале новой строки. Если сообщение принято к доставке, то сервер вернёт уведомление с кодом 250, а иначе – сообщение об ошибке. После принятия сервером сообщения к отправке, клиент должен отправить команду QUIT, которая сигнализирует серверу, что больше отправки писем не будет. После принятия от сервера подтверждения этой команды, следует закрыть соединение с сервером. Пример SMTP диалога, между отправителем (SENDER) и сервером (RECEIVER): SENDER: MAIL FROM: <Smith@Alpha> RECEIVER: 250 OK SENDER: RCPT TO: <Jones@Beta> RECEIVER: 250 OK SENDER: RCPT TO: <Green@Beta> RECEIVER: 550 No such user here SENDER: RCPT TO: <Brown@Beta> RECEIVER: 250 OK SENDER: DATA RECEIVER: 354 Start mail input; end with <CRLF>.<CRLF> SENDER: Blah blah blah... SENDER:...etc. etc. etc. SENDER: <CRLF>.<CRLF> RECEIVER: 250 OK
Протокол электронной почты POP3 РОРЗ (Post Office Protocol v.3) — это простейший протокол для работы пользователя с содержимым своего почтового ящика. Он позволяет только забрать почту из почтового ящика сервера на рабочую станцию клиента и удалить ее из почтового ящика на сервере. Всю дальнейшую обработку почтовое сообщение проходит на компьютере клиента. Многие концепции, принципы и понятия протокола POP выглядят и функционируют подобно SMTP. Команды POP практически идентичны командам SMTP. На рис. 4.2 изображена модель взаимодействия клиента и сервера по протоколу POP. Сервер POP находится между агентом пользователя и почтовыми ящиками. Рис. 2.2 – Конфигурация модели клиент-сервер по протоколу POP3
В протоколе РОРЗ оговорены три стадии процесса получения почты: авторизация, транзакция и обновление. После того как сервер и клиент РОРЗ установили соединение, начинается стадия авторизации. На стадии авторизации клиент идентифицирует себя для сервера. Если авторизация прошла успешно, сервер открывает почтовый ящик клиента и начинается стадия транзакции. В ней клиент либо запрашивает у сервера информацию (например, список почтовых сообщений), либо просит его совершить определенное действие (например, выдать почтовое сообщение). Наконец, на стадии обновления сеанс связи заканчивается. Авторизация пользователя. После того как программа установила TCP-соединение с портом протокола РОРЗ (официальный номер 110), необходимо послать команду USER с именем пользователя в качестве параметра. Если ответ сервера будет +ОК, нужно послать команду PASS с паролем этого пользователя: Пример: CLIENT: USER ivan SERVER: +ОК CLIENT: PASS secret SERVER: +ОК ivan's maildrop has 2 messages (320 octets) Последняя строчка ответа означает, что в почтовом ящике ivan есть 2 сообщения (320 байтов). Транзакции РОРЗ. После того как стадия авторизации окончена, обмен переходит на стадию транзакции. В следующих примерах демонстрируется возможный обмен сообщениями на этой стадии. Команда STAT возвращает количество сообщений и количество байтов в сообщениях: CLIENT: STAT SERVER: +ОК 2 320 Команда LIST (без параметра) возвращает список сообщений в почтовом ящике и их размеры: CLIENT: LIST SERVER: +ОК SERVER: 2 messages (320 octets) SERVER: 1 120 SERVER: 2 200 ... Команда LIST с параметром возвращает информацию о заданном сообщении: CLIENT: LIST 2 SERVER: +ОК 2 200 ... CLIENT: LIST 3 SERVER: -ERR no such message, only 2 messages in maildrop Команда TOP возвращает заголовок, пустую строку и первые десять строк тела сообщения: CLIENT: TOP 10 SERVER: +ОК SERVER: <the POP3 server sends the headers of the message, a blank line, and the first 10 lines of the message body> (сервер POP высылает заголовки сообщений, пустую строку и первые десять строк тела сообщения) SERVER: .... CLIENT: TOP 100 SERVER: -ERR no such message Команда NOOP не возвращает никакой полезной информации, за исключением позитивного ответа сервера. Однако позитивный ответ означает, что сервер находится в соединении с клиентом и ждет запросов: CLIENT: NOOP SERVER: +ОК Следующие примеры показывают, как сервер POP3 выполняет действия. Например, команда RETR извлекает сообщение с указанным номером и помещает его в буфер местного UA (почтового агента): CLIENT: RETR 1 SERVER: +OK 120 octets SERVER: <the POPS server sends the entire message here> (РОРЗ-сервер высылает сообщение целиком) SERVER: ...... Команда DELE отмечает сообщение, которое нужно удалить: CLIENT: DELE 1 SERVER: +OK message 1 deleted... (сообщение 1 удалено) CLIENT: DELE 2 SERVER: -ERR message 2 already deleted (сообщение 2 уже удалено) Команда RSET снимает метки удаления со всех отмеченных ранее сообщений: CLIENT: RSET SERVER: +OK maildrop has 2 (в почтовом ящике 2 сообщения (320 байтов)) messages (320 octets) Как и следовало ожидать, команда QUIT закрывает соединение с сервером: CLIENT: QUIT SERVER: +OK dewey POP3 server signing off CLIENT: QUIT SERVER: +OK dewey POP3 server signing off (maildrop empty) CLIENT: QUIT SERVER: +OK dewey POP3 server signing off (2 messages left) Обратите внимание на то, что отмеченные для удаления сообщения на самом деле не удаляются до тех пор, пока не выдана команда QUIT и не началась стадия обновления. В любой момент в течение сеанса клиент имеет возможность выдать команду RSET, и все отмеченные для удаления сообщения будут восстановлены. Задание на лабораторную работу: Ознакомившись с протоколами SMTP, описанным в RFC 788 и POP3, описанным в RFC 1939 выполнить нижеприведенные задания. Написать приложение: с помощью которого можно отправлять email сообщения. с помощью которого можно принимать email сообщения, оставленные в почтовом ящике. с помощью которого можно просматривать список email сообщений в почтовом ящике и удалять выбранные сообщения. с помощью которого можно просматривать дополнительную информацию о заданном сообщении и удалять выбранные сообщения из почтового ящика.
Указанные приложения можно реализовать как в консольном варианте, так и с применением GUI. Для реализации можно использовать Java-Swing, AWT, C# -.Net, C++ - QT, Python.
|
||||
Последнее изменение этой страницы: 2016-08-10; просмотров: 528; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.139.55 (0.008 с.) |