Добавил:
twitch.tv Заведующий методическим кабинетом, преподаватель на кафедре компьютерного спорта и прикладных компьютерных технологий. Образование - Магистр Спорта. Суета... Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
2
Добавлен:
04.06.2023
Размер:
360.41 Кб
Скачать

можливість керувати повідомленнями прямо на сервері, не завантажуючи їх на свій комп'ютер. У цього протоколу є і погана риса - те, що вся пошта зберігається на сервері, тому при управлінні поштовим сервером, що підтримує протокол 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

* CHECK

* EXAMINE

* CLOSE

* CREATE

* EXPUNGE

* DELETE

* SEARCH

* RENAME

* FETCH

* SUBSCRIBE

* STORE

* UNSUBSCRIBE

* COPY

* LIST

* UID

* LSUB

* CAPABILITY

* STATUS

* NOOP

* APPEND

*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, потрібно мати відповідний поштовий клієнт (їх список ви знайдете на сайті протоколу).

Протокол POP3

POP3 (англ. Post Office Protocol Version 3 - протокол поштового відділення,

версія 3) використовується поштовим клієнтом

для отримання повідомлень

електронної пошти з сервера. Зазвичай використовується

в парі з протоколом

SMTP.

 

 

 

Попередні версії протоколу (POP, POP2) застаріли.

 

Стандарт протоколу POP3 визначений в

RFC 1939. Розширення та методи

авторизації визначені в RFC 2195, RFC 2449, RFC 1734, RFC 2222, RFC 3206,

RFC 2595. Існують реалізації POP3-серверів,

що підтримують TLS та SSL.

Альтернативним протоколом для збору

повідомлень з

поштового сервера є

IMAP.

 

 

 

Стани сеансу

У протоколі POP3 передбачено три стани сеансу:

1.

Авторизація:

клієнт проходить процедуру аутентифікації

2.

Транзакція:

клієнт отримує інформацію про стан поштової скриньки,

приймає і видаляє пошту

3.

Оновлення: сервер видаляє обрані листи і закриває з'єднання

Конструкція протоколу РОРЗ забезпечує можливість користувачеві звернутися до свого поштового сервера та вилучити пошту, яка накопичилася для нього. Користувач може отримати доступ до РОР-серверу з будь-якої точки доступу до Інтернет. При цьому він повинен запустити спеціальний поштовий агент (UA), що працює по протоколу РОРЗ, та налаштувати його для роботи зі своїм поштовим сервером. Отже, на чолі моделі POP знаходиться окремий персональний комп'ютер, що працює виключно в якості клієнта поштової системи (сервера). Повідомлення доставляються клієнтові за протоколом POP, а надсилаються, як і раніше, за допомогою SMTP. Тобто на комп'ютері користувача існують два окремих агента-інтерфейсу до поштової системи - доставки (POP) і відправки (SMTP). Розробники протоколу РОРЗ називають таку ситуацію "роздільні агенти" (split UA). Концепція роздільних агентів коротко обговорюється в специфікації РОРЗ.

Команди POP3 APOP [имя] [digest]

Команда служить для передачі серверу ім'я користувача та пароль зашифрованим (digest)

Аргументи

[имя] - рядок, що вказує ім'я поштової скриньки.

[digest]- зашифрована тимчасова мітка паролем користувача за алгоритмом MD5. У разі підтримки цієї команди тимчасова мітка виходить при з'єднанні з сервером:

+OK POP3 server ready <1896.698370952@meshach.smallorg.org>

Обмеження

Її підтримка не є обов'язковою Можливі відповіді

+OK maildrop has n message

-ERR password suplied for [имя] is incorrect

DELE [сообщение]

Сервер позначає вказане повідомлення для видалення

Аргументи

[сообщение] - номер повідомлення.

Обмеження

Доступна після успішної ідентифікації

Можливі відповіді

+OK message deleted -ERR no such message

LIST [сообщение]

Якщо був переданий аргумент, то сервер видає інформацію про зазначеному повідомленню. Якщо аргумент не був переданий, то сервер видає інформацію

про всі повідомлення, що знаходяться в поштовій скриньці. Повідомлення, позначені для видалення не перераховуються.

Аргументи

[сообщение]- номер повідомлення (необов'язковий аргумент)

Обмеження

Доступна після успішної ідентифікації

Можливі відповіді

+OK scan listing follows -ERR no such message

NOOP

Сервер нічого не робить, завжди відповідає позитивно

Аргументи

Відсутні.

Обмеження

Відсутні.

Можливі відповіді

+OK

PASS [пароль]

Передає серверу пароль поштової скриньки

Аргументи

[пароль] - пароль для поштової скриньки.

Обмеження

Працює після вдалої передачі імені поштової скриньки.

Можливі відповіді

+OK maildrop locked and ready -ERR invalid password

-ERR unable to lock maildrop

RETR [сообщение]

Сервер передає повідомлення з вказаним номером

Аргументи

[сообщение] - номер повідомлення

Обмеження

Доступна після успішної ідентифікації

Можливі відповіді

+OK message follows -ERR no such message

RSET

Якщо якісь повідомлення були помічені для видалення, то з них знімається ця мітка.

Аргументи

Відсутні

Обмеження

Доступна після і до успішної ідентифікації

Можливі відповіді

+OK

STAT

Сервер повертає кількість повідомлень в поштовій скриньці плюс розмір поштової скриньки

Обмеження

Доступна після успішної ідентифікації

Можливі відповіді

+OK a b

TOP [сообщение] [количество строк]

Сервер повертає вказану кількість рядків після заголовку

Аргументи

[сообщение] - номер повідомлення [количество строк] – скільки рядків треба вивести

Обмеження

Доступна після успішної ідентифікації

Можливі відповіді

+OK n octets

-ERR no such message

USER [имя]

Передає серверу ім’я користувача

Аргументи

[имя] - строка, указывающая имя почтового ящика.

Обмеження

Відсутні.

Можливі відповіді

+OK name is a valid mailbox -ERR never heard of mailbox name

QUIT

Аргументи

Відсутні.

Обмеження

Відсутні.

Можливі відповіді

+OK

Номер 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

Порядок виконання роботи

1.Ознайомтесь з основними принципами взаємодії між клієнтами та поштовими серверами за протоколом SMTP. Занести в звіт по лабораторній роботі стислі відомості по цій темі.

2.Ознайомтесь з основними принципами взаємодії між клієнтами та поштовими серверами за протоколом РОР3. Занести в звіт по лабораторній роботі стислі відомості по цій темі.

3.Ознайомтесь з основними принципами взаємодії між клієнтами та поштовими серверами за протоколом IMAP4. Занести в звіт по лабораторній роботі стислі відомості по цій темі.

4.Використовуючи програму-клієнт віддаленої реєстрації PUTTY, виконайте віддалене підключення за протоколом Telnet до 25-го порту навчального поштового сервера sstzn.tzn.lab.krmk, як показано на рисунку:

Рисунок 3 - Підключення за протоколом Telnet до 25-го порту Замість символьного імені сервера, можна ввести його IP-адресу 10.40.0.150

5. У відповідь на привітання поштового SMTP-сервера 220 sstzn.tzn.lab.krmk ESMTP Postfix за допомогою команди HELO <повне DNS-ім’я Вашого комп’ютера> виконайте ідентифікацію хоста-відправника (Вашого комп’ютера). Параметр повне DNS-ім’я Вашого комп’ютера обирається за шаблоном L-computerN.домен лабораторії, де L – номер лабораторії (приміщення), де проводиться лабораторна робота, а N - номер Вашого робочого місця, домен лабораторії - обирається noc.lab.krmk для лабораторії НОЦ, або tzn.lab.krmk - для лабораторії ТЗН. Наприклад:

HELO 10-computer25.noc.lab.krmk

Результатом вдалої ідентифікації має бути повідомлення сервера з кодом 250:

250sstzn.tzn.lab.krmk

6.За допомогою команди MAIL FROM: <ім’я користувача-

відправника@домен користувача-відправника> вкажіть електронну поштову адресу користувача-відпраника поштового повідомлення. Параметр ім’я

користувача-відправника@домен користувача-відправника обирається за таким принципом:

- ім’я користувача-відправника - обирається за шаблоном

L-studentN.домен лабораторії, де L – номер лабораторії (приміщення), де проводиться лабораторна робота, а N - номер робочого місця, домен лабораторії - обирається noc.lab.krmk для лабораторії НОЦ, або tzn.lab.krmk

-для лабораторії ТЗН;

-домен користувача-відправника – обирається noc.lab.krmk для лабораторії НОЦ, або tzn.lab.krmk - для лабораторії ТЗН. Наприклад:

MAIL FROM: 10-student25@noc.lab.krmk

Результатом вдалої операції має бути повідомлення сервера з кодом 250:

250 2.1.0 Ok

7. За допомогою команди RCPT TO: <ім’я користувача-одержувача@домен користувача-одержувача> вкажіть електронну поштову адресу користувачаодержувача поштового повідомлення. Параметр ім’я користувача-

одержувача@домен користувача-одержувача обирається за таким принципом:

- ім’я користувача-одержувача - обирається за шаблоном

L-studentN.домен лабораторії, де L – номер лабораторії (приміщення), де проводиться лабораторна робота, а N - номер Вашого робочого місця, домен лабораторії - обирається noc.lab.krmk для лабораторії НОЦ, або tzn.lab.krmk

-для лабораторії ТЗН;

-домен користувача-одержувача – обирається noc.lab.krmk для лабораторії НОЦ, або tzn.lab.krmk - для лабораторії ТЗН. Наприклад:

RCPT TO: 10-student30@noc.lab.krmk

Результатом вдалої операції має бути повідомлення сервера з кодом 250:

250 2.1.0 Ok

8. За допомогою команди DATA повідомте поштовий сервер про свій намір розпочати введення тіла поштового повідомлення.

DATA

У відповідь має з’явитися повідомлення з кодом 354 про готовність сервера сприйняти текстове повідомлення:

354 End data with <CR><LF>.<CR><LF>

В цьому повідомленні вказується на те, що після завершення введення тіла поштового повідомлення користувач має перейти на новий рядок та ввести символ «.» (ознака кінця тіла поштового повідомлення).

9. Введіть коротке текстове повідомлення, використовуючи лише латинські

літери. Текст повідомлення обов’язково повинен містити ваше прізвище, ім’я та повний номер групи. В кінці повідомлення перейдіть на нову строку та введіть символ «.». Після натискання клавіші Enter поштове повідомлення буде збережено на сервері і поставлене в чергу на відправлення адресатові. При цьому сервер поверне повідомлення про успішну доставку листа адресатові або

розміщення листа в черзі на віправку (сервер вказує ідентифікатор листа в черзі повідомлень на відправку):

250 2.0.0 Ok: queued as 7083DB822

Завершіть сеанс інтерактивного зв’язку з сервером командою QUIT.

10. Використовуючи програму-клієнт віддаленої реєстрації PUTTY, виконайте віддалене підключення за протоколом Telnet до 110-го порту навчального поштового сервера sstzn.tzn.lab.krmk, як показано на рисунку:

Рисунок 4 - Підключення за протоколом Telnet до 110-го порту

11. У відповідь на привітання поштового РОР3-сервера +OK Dovecot ready за допомогою команди USER <ім’я користувача> виконайте авторизацію користувача-отримувача, обліковий запис якого є на поштовому POP3-сервері. Параметр ім’я користувача обирається за шаблоном L-studentN@домен лабораторії, де L – номер лабораторії (приміщення), де проводиться лабораторна робота, а N - номер робочого місця, куди ви відправляли поштове повідомлення. Домен лабораторії - обирається noc.lab.krmk для лабораторії НОЦ, або tzn.lab.krmk - для лабораторії ТЗН. Наприклад:

USER 10-student30@noc.lab.krmk

Результатом вдалої авторизації має бути повідомлення сервера:

+OK

12. За допомогою команди PASS <пароль> введіть пароль на доступ до поштової скриньки користувача-отримувача, обліковий запис якого є на поштовому POP3-сервері. Параметр пароль обирається за шаблоном L-sN, де L

– номер лабораторії (приміщення), де проводиться лабораторна робота, а N - номер робочого місця, куди ви відправляли поштове повідомлення. Наприклад:

PASS 10-s30

Результатом вдалої авторизації має бути повідомлення сервера:

+OK Logged in.