Протокол POP3

 

 

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

Перший стандарт РОРЗ визначений в RFC 1225 (Post Office Protocol-Version 3, J. Myers, M. Rose November 1994).

Остання версія RFC1939 (J. Myers, M. Rose May 1996 )

Порт за замовчанням - 110.

Користувач може дістати доступ до РОР-серверу з будь-якої точки доступу до Інтернет.

 

4.1 Модель протоколу POP3

Рис. 4.1. Модель протоколу POP

 

2 Принцип роботи POP

У протоколі РОР3 обумовлено три стадії процесу отримання пошти:

• авторизація

• транзакція

• оновлення (завершення транзакції)

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

Відповідь сервера може мати два значення:

+OK - позитивна відповідь

-ERR – негативний результат

Якщо сервер містить декілька рядків, то останній рядок повинен містити

"крапку".

Позначення: "C" - клієнт "S" - сервер

 

2.1 Авторизація користувача

 

Команди авторизації:

USER - ім'я користувача, воно є і ідентифікатором поштової скриньки.

PASS - пароль користувача

APOP - авторизація цифровим підписом (використовується рідко).

 

Приклад авторизації:

 

C: USER Pety // Користувач повідомляє своє ім’я, воно є ідентифікатором поштової скриньки

S: +ОК // Сервер повідомляє, що все в порядку

C: PASS Petypasw // Користувач повідомляє свій пароль

S: +ОК Pety's maildrop has 2 messages (320 octets) // Сервер повідомляє, в поштовому ящику Pety є 2 листи

 

Приклад невдалої авторизації:

 

C: USER Pety

S: -ERR sorry, no mailbox for Pety here

 

Приклад авторизації з цифровим підписом:

 

C: APOP Pety K3u7yG4TfR7gE55DD4ry6G4F // Ім’я та шифрований пароль

S: +ОК Pety's maildrop has 2 messages (320 octets)

 

2.2 Транзакції РОРЗ

 

Після того, як стадія авторизації закінчена, обмін переходить на стадію транзакції. У наступних прикладах демонструється можливий обмін повідомленнями на цій стадії.

 

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

 

C: STAT

S: +ОК 2 320 // 2 повідомлення, загальний розмір 320 байт

 

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

 

C: LIST

S: +ОК 2 messages (320 octets)

S: 1 120 // 1 лист, розмір 120 байт

S: 2 200 // 2 лист, роммір 200 байтS: .

 

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

 

C: LIST 2

S: +ОК 2 200 ...

C: LIST 3 // запит неіснуючого повідомлення

S: -ERR no such message, only 2 messages in maildrop // лист 3 відсутній

 

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

 

C: TOP 1 10

S: +ОК

S: С новым годом

S:

S: <Десять рядків листа>

S: .

 

Команда NOOP - перевірка з'єднання:

 

C: NOOP

S: +ОК

 

Команда RETR витягує повідомлення з вказаним номером і поміщає його в буфер:

 

C: RETR 1

S: +OK 120 octets

S: <the POPS server sends the entire message here> // РОРЗ-сервер висилає лист повністю

S: . // "крапка" – кінець повідомлення

 

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

 

C: DELE 1

S: +OK message 1 deleted // повідомлення 1 видалене

C: DELE 2

S: -ERR message 2 already deleted // повідомлення 2 вже видалене

 

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

 

C: RSET

S: +OK maildrop has 2 messages (320 octets) // в поточній скринці 2 повідомлення були відзначені на видалення.

 

Команда QUIT - перехід в режим оновлення (UPDATE):

 

C: QUIT

S: +OK dewey POP3 server signing off

 

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

 

2.3 Оновлення (UPDATE)

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