Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна_робота_6_SMTP_POP3.doc
Скачиваний:
2
Добавлен:
25.08.2019
Размер:
284.67 Кб
Скачать

Принцип дії

На діаграмі показано типову послідовність подій, що відбуваються, коли Аліса відправляє листа з допомогою поштової програми (MUA). Вона вводить e-mail адресата та натискає кнопку «відправити».

Принцип роботи електронної пошти.

  1. Її поштовий клієнт форматує повідомлення в спеціальний формат та відправляє по протоколу SMTP на місцевий сервер обміну пошти (MTA), в цьому випадку smtp.a.org, її інтернет-провайдера.

  2. Сервер обміну пошти отримує адресу призначення з даних протоколу SMTP (а не з шапки листа), в цьому випадку, це bob@b.org. Адреса скрині для отримання електронних листів це рядок localpart@exampledomain. Фрагмент перед знаком @ називають локальною частиною адреси, зазвичай, вона збігається з іменем користувача отримувача, а фрагмент після знаку @ називають доменним іменем. Сервер передачі листів використовує доменне ім'я для визначення повного доменного імені сервера обміну листами в доменній системі імен (DNS)

  3. DNS сервер домену b.org, ns.b.org, надсилає у відповідь МХ записи в яких перелічено сервери обміну пошти цього домену, в цьому випадку mx.b.org, сервер інтернет-провайдера Боба.

  4. smtp.a.org відправляє лист mx.b.org по протоколу SMTP, який кладе його в скриню користувача bob.

  5. Боб натискає кнопку «отримати повідомлення» в поштовому клієнті, який отримує листи з сервера по протоколу Post Office Protocol (POP3).

Протоколи передачі електронної пошти

  • IMAP

  • POP3

  • SMTP

  • UUCP

Програми-клієнти для роботи з e-mail

Функціонування електронної пошти побудовано на принципі клієнт-сервер, стандартному для більшості мережевих сервісів. Для обміну листами з поштовим сервером, потрібна спеціальна програма-клієнт. Існує багато різних програм-клієнтів електронної пошти, які можуть відрізнятися окремими функціями, можливостями та інтерфейсом, в тому числі й такі, що працюють на сервері (в режимі on-line). Проте загальні функції у більшості пакетів однакові. До них можна віднести:

  • підготовка тексту;

  • імпорт файлів-додатків;

  • відправка листа;

  • перегляд і збереження кореспонденції;

  • знищення кореспонденції;

  • підготовка відповіді;

  • коментування і пересилка інформації;

  • експорт файлів-додатків.

До популярних поштових програм-клієнтів відносять:

  • Eudora Mail

  • Evolution

  • KMail

  • Mozilla Mail

  • Mozilla Thunderbird

  • Netscape Mail

  • Novell GroupWise

  • Opera Mail (M2)

  • Outlook

  • Outlook Express

  • TheBat!

Сучасний пакет програм електронної пошти має добре організований інтерфейс користувача, який не потребує багато часу і зусиль для засвоєння, та зазвичай забезпечує такі додаткові функції:

  • ідентифікація власника поштової скриньки;

  • автоматичне приєднання підпису;

  • адресні книги;

  • перевірка орфографії;

  • можливість створення поштових скриньок різного призначення;

  • шифрування/дешифрування повідомлень;

  • робота у автономному (off-line) режимі;

  • фільтрацію/маршрутизацію повідомлень;

  • автоматична відправка відповіді про тимчасову відсутність отримувача або автоматична переадресація листа на іншу адресу електронної пошти.

Протокол SMTP

Основне завдання протоколу SMTP (Simple Mail Transfer Protocol) полягає в тому, щоб забезпечувати передачу електронних повідомлень (пошаную). Для роботи через протокол SMTP клієнт створює TCP з'єднання з сервером через порт 25. Потім клієнт і SMTP сервер обмінюються інформацією поки з'єднання не буде закрито або перерване. Основною процедурою в SMTP є передача пошти (Mail Procedure). Далі йдуть процедури форвардінга пошти (Mail Forwarding), перевірка імен поштової скриньки і виведення списків поштових груп. Найпершою процедурою є відкриття каналу передачі, а останньою - його закриття.

Команди SMTP указують серверу, яку операцію хоче провести клієнт. Команди складаються з ключових слів, за якими слідує один або більш за параметри. Ключове слово состот з 4-х символів і розділено від аргументу одним або декількома пропусками. Кожен командний рядок закінчується символами CRLF. Ось синтаксис всіх команд протоколу SMTP (SP - пропуск):

HELO

MAIL FROM:

RCPT TO:

DATA

RSET

SEND FROM:

SOML FROM:

SAML FROM:

VRFY

EXPN

HELP

NOOP

QUIT

Звичайна відповідь SMTP сервера складається з номера відповіді, за якою через пропуск слідує додатковий текст. Номер відповіді служить індикатором стану сервера.

Відправка пошти

Насамперед підключаємося до SMTP серверу через порт 25. Тепер треба передати серверу команду HELLO і наш IP адреса:

C: HELLO 195.161.101.33

S: 250 smtp.mail.ru is ready

При відправці пошти передаємо деякі потрібні дані (відправник, одержувач і само лист):

C: MAIL FROM: 'указуємо відправника

S: 250 OK

C: RCPT TO: 'указуємо одержувача

S: 250 OK

указуємо серверу, що передаватимемо зміст листа (заголовок і тіло листа)

C: DATA

S: 354 Start mail input; end with .

передачу листа необхідно завершити символами CRLF.CRLF

S: 250 OK

C: From: Drozd

C: To: Drol

C: Subject: Hello

між заголовком листа і його текстом не одна пара CRLF, а дві.

C: Hello Drol!

C: You will be die on next week!

закінчуємо передачу символами CRLF.CRLF

S: 250 OK

Тепер завершуємо роботу, відправляємо команду QUIT:

S: QUIT

C: 221 smtp.mail.ru is closing transmission channel

< Другие>

* SEND - використовується замість команди MAIL і указиаєт, що пошта повинна бути доставлена на термінал користувача.

* SOML, SAML - комбінації команд SEND або MAIL, SEND і MAIL відповідно.

* RSET - указваєт серверу перервати виконання поточного процесу. Всі збережені дані (відправник, одержувач і др) віддаляються. Сервер повинен відправити позитивну відповідь.

* VRFY - просить сервер перевірити, чи є переданий аргумент ім'ям користувача. У разі успіху сервер повертає повне ім'я користувача.

* EXPN - просить сервер підтвердити, що переданий аргумент - це список поштової групи, і якщо так, то сервер виводить членів цієї групи.

* HELP - запрошує у сервера корисну допомогу про передану як аргумент команду.

* NOOP - на виклик цієї команди сервер повинен позитивно відповісти. NOOP нічого не робить і ніяк не впливає на вказаних до цього дані.

Протокол РОРЗ

Номер TCP-порту протоколу РОРЗ - 110. Основна відмінність РОРЗ від інших Інтернет-протоколів верхнього рівня полягає в тому, що в ньому немає широкого спектра кодів помилок: у відповідь на будь-яку команду він посилає рядки, що починаються з "+ОК" або "-ERR", які сигналізують відповідно про успішне або невдале виконання команди.

Набір основних команд протоколу також досить простий:

USER name

Це перше, що посилає клієнт після того, як він зчитав рядок-вітання +ОК РОРЗ served ready. Аргумент вказує ім'я користувача на цьому поштовому сервері, для якого потрібно одержати доступ до поштової скриньки. Наприклад:

USER paaa

PASS password

Після того, як користувач вказав своє ім'я, він повинен вказати пароль до своєї поштової скриньки. Наприклад:

PASS doom

STAT

Якщо користувач існує і правильно ввів свій пароль, він може продивитися пошту. Команда STAT повідомляє поточний стан скриньки. Формат відповіді — "+ОК п т", де п — кількість повідомлень, т — кількість байт. Наприклад (у поштовій скриньці перебувають 11 листів загальним обсягом 1594 байти):

С: STAT

S:+OKll 1594

LISTn

Для оцінки розміру конкретного листа є команда LIST. Формат виводу такий самий, як у STAT. Наприклад (третій лист має розмір 512 байт):

С: LIST З

S:+OK3 512

RETR n.

Для одержання листа із сервера використовується команда RETR п, де п — номер листа. Наприклад (одержуємо четвертий лист):

С: RETR 4

S: +OK 124 octets

S:TyT

S:іде

S: текст

S: листа

S:.

DELE n.

Після того, як листи успішно отримані й збережені локально, їх можна видалити з поштового сервера. Для цього є команда DELE n. Наприклад (видаляємо перший лист):

С: DELE 1

S: +OK message 1 deleted

QUIT.

Для завершення сеансу використовується команда QUIT

Протокол ІМАР

Іншим протоколом розбору пошти є протокол ІМАР (Interactive Mail Access Protocol) (RFC-2060), що за своїми можливостями дуже схожий на РОРЗ, але був розроблений як більш надійна його альтернатива і до того ж має ширші можливості щодо керування процесом обміну із сервером.

ІМАР4 підтримує операції створення, видалення, перейменування поштових скриньок; перевірки надходження нових листів; оперативне видалення листів; установку й скидання прапорців операцій; розбір заголовків у і форматі RFC-822 і МІМЕ-ІМВ; пошук серед листів; вибіркове читання листів. ШАР більш зручний для читання пошти в подорожі, ніж POP, тому що І повідомлення можуть бути залишені на сервері, що позбавляє від необхідності синхронізувати списки прочитаних листів на локальному хості й на Сервері. МІМЕ МІМЕ — це скорочення для багатоцільових розширень Інтернет-пошти (Multipurpose Internet Mail Extensions). Як сказано в RFC 2045, він перевизначає формат повідомлень електронної пошти, щоб дозволити: — передачу текстів у кодуванні, що відрізняється від US-ASCII; — передачу в листі нетекстової інформації у різних форматах; — повідомлення з кількох частин; — передачу в заголовку листа інформації в кодуванні, відмінному від US-ASCII. і Він може використовуватися для підтримки таких засобів безпеки, як цифрові підписи і шифровані повідомлення. Він також дозволяє посилати поштою виконувані файли, заражені вірусами, або листи з РПС. Як і веб-браузери, програми читання пошти можуть бути сконфігуровані так, щоб автоматично запускати програми-помічники для обробки певних типів МІМ Е-повідомлень. Проблеми безпеки електронної пошти Основні протоколи передачі пошти (SMTP, РОРЗ, ІМАР4), як правило, не здійснюють надійної автентифікації, що дозволяє легко створити листи з фальшивими адресами. Жоден із цих протоколів не використовує криптографію, яка могла б гарантувати конфіденційність електронних листів. Хоча існують розширення цих протоколів, рішення про їх використання повинне бути прийняте як складова частина політики адміністрації поштового сервера. Деякі такі розширення використовують уже наявні засоби автентифікації, а інші дозволяють клієнтові й серверові погодити тип автентифікації, який використовуватиметься в цьому з’єднанні. Фальшиві адреси відправника Адресі відправника в електронній пошті Інтернету не можна довіряти, тому що відправник може вказати фальшиву зворотну адресу, або заголовок може бути модифікований у ході передачі листа, або відправник може сам з’єднатися з SMTP-портом на машині, від імені якої він хоче відправити лист, і ввести текст листа. Перехоплення листа Заголовки й вміст електронних листів передаються в чистому вигляді. У результаті зміст повідомлення може бути прочитаний або змінений у процесі передачі його через Інтернет.

Нижче наведений приклад взаємодії по протоколу IMAP

* OK IMAP2 Server Ready

* A001 LOGIN Fred Secret

* A001 OK User Fred logged in

* A002 SELECT INBOX

* FLAGS (Meeting Notice \ Answered \ Flagged \ Deleted \ Seen)

* 19 Exists

* 2 Recent

* A002 OK Select compete

* A003 FETCH 1:19 ALL

* 1 Fetch (.....

* 19 Fetch (....

* A003 OK Fetch complete

* A004 LOGOUT

* Bye IMAP2 server quitting

* A004 OK Logout complete

Протокол POP3 має ряд істотних недоліків, найсерйозніший з яких - неможливість керування поштою прямо на сервері. Повідомлення в цьому протоколі завантажуються з сервера всі відразу, після чого, як правило, видаляються з нього - фактично користувачеві не дають вибрати, які повідомлення він хоче скачати, а які - видалити прямо з сервера. Для вирішення ось такої проблеми і був створений протокол IMAP - Internet Mail Access Protocol (Протокол Доступу до Пошті через Інтернет), розроблений у Вашингтонському університеті, передбачає можливість отримання користувачами електронної пошти з однієї поштової скриньки з різних місць, при цьому повідомлення знаходяться в одному місці . Користувачеві дається можливість керувати повідомленнями прямо на сервері, не завантажуючи їх на свій комп'ютер. У цього протоколу є і погана риса - те, що вся пошта зберігається на сервері, тому при управлінні поштовим сервером, що підтримує протокол IMAP, треба особливо обережно ставитися до визначення дискового простору під скриньки користувачів, щоб система вчасно перестала приймати нові повідомлення, не допускаючи переповнення диска і зупинки сервера. Поточна версія протоколу - 4 з номером реалізації 1 або скорочено - IMAP4rev1. Протокол повністю описаний у документі RFC 2060. Так само як і POP3, протокол IMAP використовує концепцію клієнт-сервер з набором команд. За допомогою команд здійснюється передача повідомлень електронної пошти від сервера клієнту. Клієнт встановлює для цієї мети TCP-з'єднання з портом 143 на сервері. Далі сервер повинен відповісти спеціальним повідомленням-запрошенням. Кожна команда клієнта передує унікальним ідентифікатором. Сервер може потім використовувати цей ідентифікатор у своїх відповідях, що дозволяє клієнтові визначити, до якої команді ставиться відповідь сервера. Це особливо важливо при виконанні сервером декількох команд за один сеанс. Ідентифікатор - коротка рядок алфавітно-цифрових символів. Ідентифікатор задається послідовно й автоматично. Так само як і в протоколі POP3, у протоколі IMAP є кілька методів перевірки автентичності клієнта. Деякі з них забезпечують більший рівень безпеки в порівнянні з іншими. На відміну від клієнтів POP3, IMAP клієнти часто проводять досить тривалі сеанси з сервером при обробці повідомлень. Таким чином, код користувача і пароль не передаються по мережі кілька разів на годину, як в протоколі POP3. Безсумнівно, що передача ідентифікатора користувача та пароль в зашифрованому вигляді залишається актуальною і застосовується в міру можливості.

Після реєстрації на сервері IMAP клієнт може приступити до роботи з поштою. Протокол IMAP пропонує досить багато команд для читання, переміщення і видалення листів в скриньках на сервері. Завантаження повідомлень на локальний комп'ютер лише для їх відображення. За замовчуванням поштову скриньку носить назву INBOX. Клієнт може створювати нові поштові скриньки, куди може переміщати повідомлення з папки INBOX. Кожне повідомлення має свій унікальний ідентифікатор - UID, за яким вони ідентифікуються в поштовій скриньці. Кожному поштової скриньки відповідає унікальний ідентифікатор достовірності (UIDVALIDITY). Вона повинна бути присутнім під час усіх сеансів з поштовою скринькою, якщо всі індикатори повідомлень у ящику залишилися незмінними. Кожне повідомлення має прапор, що відображає його статус.

Прапори

* Seen - прочитано

* Answered - посланий відповідь

* Flagged - примусово позначено

* Deleted - видалено

* Draft - не закінчено (чернетка)

* Recent - нове повідомлення

Команди IMAP

* SELECT

* EXAMINE

* CREATE

* DELETE

* RENAME

* SUBSCRIBE

* UNSUBSCRIBE

* LIST

* LSUB

* STATUS

* APPEND

* CHECK

* CLOSE

* EXPUNGE

* SEARCH

* FETCH

* STORE

* COPY

* UID

* CAPABILITY

* NOOP

* LOGOT

Детально про протокол IMAP можна прочитати у наступних документах RFC:

* RFC-1731 Методи встановлення автентичності користувача;

* RFC-1732, RFC-2061 Сумісність з IMAP2 і IMAP2bis;

* RFC-1733 Розподілені електронні моделі поштових систем в IMAP4;

* RFC-2086 ACL-розширення для IMAP4;

* RFC-2087 QUOTA-розширення для IMAP4;

* RFC-2088 Несінхронізіруемие літерали (literals) IMAP4;

* RFC-2095, RFC-2195 IMAP / POP розширення перевірки автентичності користувача для простих запитів;

* RFC-2177 IDLE команда IMAP4;

Для пошуку інформації використовуються команди FIND з різними аргументами.

ІMAP-протокол реалізує технологію "псевдолокального" поштової скриньки. Це означає, що ви можете керувати своїм скринькою на сервері так, як ніби він знаходиться на локальній машині. При цьому існує можливість зручної роботи з IMAP-папками на сервері. Це дуже гнучкий інструмент, що дозволяє вам створювати і видаляти каталоги. Те ж саме можна проробляти і з самими повідомленнями: сортувати їх по папках, видаляти або навіть переміщати на інший сервер. При цьому два поштові скриньки на різних серверах можуть синхронізуватися автоматично - це зручно, якщо ви хочете зберігати резервну копію листів десь ще.

Протокол був розроблений для використання на повільних каналах, а значить, добре підійде тим, хто працює з модемного з'єднання. А зберігання листів і папок на сервер дозволяє вам використовувати одну скриньку в будь-якому місці, де є Інтернет. Більше не потрібно носити з собою компакт-диски з важливими листами, досить просто залишити їх в окремій папці на IMAP-сервер. Крім того, під час роботи по протоколу IMAP не виникає звичної ситуації, коли у вас обривається зв'язок на сотому листі, і клієнт починає закачувати всі листи заново.

Просунута система для роботи з папками та повідомленнями на сервер дозволяє вам створювати деревоподібні структури папок. Якщо до вас прийшло багато листів, то ви не зобов'язані завантажувати їх усі, можна одержати тільки заголовки і тоді потрібні листи при перегляді будуть викачуватися автоматично. На сервері IMAP діє гарна система прапорів. Ви можете позначати листи прапорами "Прочитано", "послав відповідь", "Позначено", "Вилучено", "Чернетка" або "Нове повідомлення". Погодьтеся, все як на вашому улюбленому поштовому клієнтові, тільки при цьому листи знаходяться на сервері і перебувають у повній цілості і доступності з будь-якої точки світу. Взаємодія поштового клієнта і сервера IMAP здійснюється так само, як і робота з POP3-серверами. Клієнт і сервер обмінюються один з одним командами і відповідями, використовуючи транспортний протокол. При використанні протоколу TCP вони працюють через 143 порт. Спочатку клієнт і сервер повинні обмінятися привітаннями, після цього клієнт відправляє дані на сервер і чекає відповіді. Наприкінці сесії канал закривається. Цікава особливість протоколу IMAP полягає в тому, що сервер не повинен відповідати на команди по черзі. Тобто під час очікування відповіді на запит клієнт може продовжувати надсилати запити. Сервер буде відповідати на них в порядку виконання, обробляючи запити одночасно. Це дуже зручно, оскільки дозволяє вам запускати трудомісткі завдання на сервері (такі, як пошук листів за певним критерієм) і не зупиняти роботу сервера з іншими запитами (наприклад, скачування певного листа).

Отже, коли може стати в нагоді протокол IMAP замість стандартного POP3? По-перше, якщо треба виходити в Мережу не через один комп'ютер або користуывтись декількома поштовими програмами. По-друге, якщо не треба завантажувати і залишати на жорсткому диску всі листи одночасно, наприклад, з міркувань безпеки. По-третє, якщо необхідно мати можливість отримати доступ до вашої кореспонденції з будь-якої точки світу. Не зайвими будуть операції пошуку, гарна система вкладених каталогів і прапорів стану пошти. На жаль, незважаючи на те, що протокол був розроблений давно, програмне забезпечення для роботи з ним знайти не так-то просто.

Тобто, IMAP - це більш просунутий формат, ніж простий протокол POP3. Його використання виправдано для тих, хто користується своїм поштовим ящиком з різних точок світу і бажає весь час мати доступ до своєї пошти. Він зручний тим, що дозволяє працювати в онлайновому режимі зі своїм ящиком і виконувати над ним безліч операцій. Для того щоб скористатися всіма перевагами IMAP, потрібно мати відповідний поштовий клієнт (їх список ви знайдете на сайті протоколу).