Принципи роботи та основні команди протоколу POP 3

masich/win/masich.html

Post Office Protocol (POP) – протокол доставки пошти користувачу з поштової скриньки поштового сервера РОР. Багато концепцій, принципів і понять протоколу POP виглядають і функціонують подібно до SMTP. Команди POP практично ідентичні командам SMTP, відрізняючись у деяких деталях. На малюнку зображено модель клієнт-сервер за протоколом POP. POP-сервер знаходиться між агентом користувача та поштовими скриньками.

основні

В даний час існують дві версії протоколу POP - РОР2 і РОРЗ, що мають приблизно однакові можливості, проте несумісні один з одним. Справа в тому, що у РОР2 та РОРЗ різні номери портів протоколу. Між ними немає зв'язку, аналогічного зв'язку між SMTP і ESMTP. Протокол РОРЗ є розширенням чи модифікацією РОР2 - це зовсім інший протокол. РОР2 визначено в документі RFC 937 (Post Office Protocol-Version 2, Butler, et al, 1985), a РОРЗ - RFC 1225 (Post Office Protocol-Version 3, Rose, 1991). Далі коротко розглянемо POP взагалі і докладніше - РОРЗ. PОРЗ розроблений з урахуванням специфіки доставки пошти на персональні комп'ютери та має відповідні операції для цього.

Призначення протоколу РОРЗРаніше поштові повідомлення більшості мереж доставлялися безпосередньо від одного комп'ютера до іншого. І якщо користувач часто змінював робочі комп'ютери або комп'ютер належав кільком користувачам, існували певні проблеми. У наші дні загальноприйнято доставку повідомлення не на комп'ютери користувача, а в спеціальні поштові скриньки поштового сервера організації, що цілодобово працює (включено).

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

Таблиця 5. Команди протоколу POP версії 3 (для мінімальної конфігурації)

Команда

ОписUSER

Ідентифікує користувача із зазначеним ім'ям

PASSВказує пароль для пари клієнт-сервер

Закриває TCP-з'єднання

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

Сервер повертає ідентифікатори повідомлень разом із розмірами повідомлень (параметром команди може бути ідентифікатор повідомлення)

Виймає повідомлення з поштової скриньки (потрібно вказувати аргумент-ідентифікатор повідомлення)

Відзначає повідомлення для видалення (потрібно вказувати аргумент – ідентифікатор повідомлення)

Сервер повертає позитивну відповідь, але не здійснює жодних дій.

Сервер повертає найбільший номерповідомлення з тих, яких раніше вже зверталися

Скасує видалення повідомлення, позначеного раніше командою DELE

У протоколі РОРЗ визначено кілька команд, але на них дається лише дві відповіді: +ОК (позитивний, аналогічний до повідомлення-підтвердження АСK) і -ERR (негативний, аналогічний до повідомлення "не підтверджено" NAK). Обидві відповіді підтверджують, що звернення до сервера відбулося і він взагалі відповідає на команди. Як правило, за кожною відповіддю слідує його змістовний словесний опис. У RFC 1225 є зразки кількох типових сеансів РОРЗ. Зараз ми розглянемо кілька з них, що дасть змогу вловити послідовність команд в обміні між сервером та клієнтом.

Авторизація користувачаПісля того, як програма встановила TCP-з'єднання з портом протоколу РОРЗ (офіційний номер 110), необхідно надіслати команду USER з ім'ям користувача як параметр. Якщо відповідь сервера буде +ОК, потрібно надіслати командуPASSз паролем цього користувача:

КомандаSTATповертає кількість повідомлень та кількість байтів у повідомленнях:

CLIENT: STAT SERVER: +ОК 2320

КомандаLIST(без параметра) повертає список повідомлень у поштовій скриньці та їх розміри:

КомандаLISTз параметром повертає інформацію про задане повідомлення:

КомандаTOPповертає заголовок, порожній рядок і перші десять рядків тіла повідомлення:

КомандаNOOPне повертає жодної корисної інформації, за винятком позитивної відповіді сервера. Однак позитивна відповідь означає, що сервер перебуває в з'єднанні з клієнтом і чекає на запити:

CLIENT: NOOP SERVER: +ОК

Наступні приклади показують, як POP3 виконує дії. Наприклад, командаRETRвитягує повідомлення із зазначеним номером та поміщає його до буфера місцевого UA:

КомандаDELEзазначає повідомлення, яке потрібно видалити:

Команда RSET знімає мітки видалення з усіх зазначених раніше повідомлень:

CLIENT: RSET SERVER: +OK maildrop має 2 messages (320 octets) (у поштовій скриньці 2 повідомлення (320 байтів) )

Як і слід очікувати, команда QUIT закриває з'єднання з сервером:

Зверніть увагу на те, що зазначені для видалення повідомлення насправді не видаляються до тих пір, поки не видано команду QUIT і не почалася стадія оновлення. У будь-який момент протягом сеансу клієнт має можливість видати команду RSET і всі відмічені для видалення повідомлення будуть відновлені.