манди APOP. Сервер, який підтримує застосування команди APOP, додає часову мітку в своє стартове повідомлення. Синтаксис тимчасової мітки відповідає формату ідентифікаторів повідомлень, описаного в [RFC822] і повинні бути унікальними для всіх заголовків повідомлень. p> Клієнт POP3 фіксує тимчасову мітку і видає команду APOP. Параметр `name 'семантично ідентичний параметру `name 'команди USER. Параметр `digest 'обчислюється з використанням алгоритму MD5 [RFC1321] для рядка, що складається з тимчасової мітки (включаючи кутові дужки) за якою слідує рядок пароля, яка відома тільки клієнту і серверу. Параметр `digest 'містить 16 октетів, які пересилаються в шістнадцятковому форматі з використанням рядкових ASCII символів. Сервер, отримавши команду APOP, перевіряє прийнятий дайджест і якщо він коректний, посилає позитивний відгук клієнта. Сесія при цьому переходить в стан транзакції. В іншому випадку надсилається негативний відгук і стан сесії не змінюється. З метою забезпечення безпеки для кожного конкретного користувача і сервера повинен використовуватися або метод доступу USER/PASS, або APOP, але не в якому випадку обидва методу поперемінно. Сервер перед закриттям каналу по команді QUIT повинен видалити з поштової скриньки всі повідомлення, які були перенесені за допомогою команд RETR. Передбачається, що всі повідомлення, передаються в ході сесії POP3, мають текстовий формат Інтернет відповідно з документом [RFC822].
Перед роботою через протокол POP3 сервер прослуховує порт 110. Коли клієнт хоче використовувати цей протокол, він повинен створити TCP з'єднання з сервером. Коли з'єднання встановлено, сервер відправляє запрошення. Потім клієнт і POP3 сервер обмінюються інформацією поки з'єднання не буде закрито або перервано. p> Команди POP3 складаються з ключових слів, за деякими слід один або більше аргументів. Всі команди закінчуються парою CRLF (у Visual Basic константа vbCrLf). Ключові слова й аргументи складаються з друкованих ASCII символів. Ключове слово і аргументи розділені одиночним пропуском. Ключове слово складається від 3-х до 4-х символів, а аргумент може бути довжиною до 40-ка символів. Відповіді в POP3 складаються з індикатора стану і ключового слова, за яким може слідувати додаткова інформація. Відповідь закінчується парою CRLF. Існує тільки два індикатора стану: "+ OK" - позитивний і "-ERR" - негативний. p> Відповіді на деякі команди можуть складатися з декількох рядків. У цих випадках кожна рядок розділена парою CRLF, а кінець відповіді закінчується ASCII символом 46 (".") І парою CRLF. POP3 сесія складається з декількох режимів. Як тільки з'єднання з сервером було встановлено і сервер відправив запрошення, то сесія переходить в режим AUTHORIZATION (Авторизація). У цьому режимі клієнт повинен ідентифікувати себе на сервері. Після успішної ідентифікації сесія переходить в режим TRANSACTION (Передача). У цьому режимі клієнт запитує сервер виконати певні команди. Коли клієнт відправляє команду QUIT, сесія переходить в режим UPDATE. У цьому режимі POP3 сервер звільняє всі зайняті ресурси і завершує роботу. Після цього TCP з'єднання закривається. У POP3 сервера може бути INACTIVITY AUTOLOGOUT таймер. Цей таймер повинен побут, по Принаймні, з інтервалом 10 хвилин. Це означає, що якщо клієнт і сервер не взаємодіють один з одним, сервер автоматично перериває з'єднання і при цьому не переходить в режим UPDATE. <В
Авторизація
Як тільки буде встановлено TCP з'єднання з POP3 сервером, він відправляє запрошення, що закінчується парою CRLF, наприклад:
В
S: + OK POP3 server ready
Тепер POP3 сесія знаходиться в режимі AUTHORIZATION. Клієнт повинен ідентифікувати себе на сервері, використовуючи команди USER і PASS. Спочатку треба відправити команду USER, після якої в якості аргументу слід ім'я користувача. Якщо сервер відповідає позитивно, то тепер необхідно відправити команду PASS, за якою слід пароль. Якщо після відправлення команди USER або PASS сервер відповідає негативно, то можна поробовать авторизуватися знову або вийти з сесії з допомогою команди QUIT. Після успішної авторизації сервер відкриває і блокує maildrop (поштова скринька). У відповіді на команду PASS сервер повідомляє скільки повідомлень знаходиться в поштовій скриньці і передає їх загальний розмір. Тепер сесія знаходиться в режимі TRANSACTION. Підіб'ємо підсумки з командами:
Команда: USER [ім'я]
Аргументи: [ім'я] - рядок, що вказує ім'я поштової скриньки
Опис: Передає серверу ім'я користувача. p> Можливі відповіді: p> В· + OK name is a valid mailbox
В· -ERR never heard of mailbox name
Приклади :
C: USER MonstrVB
S: + OK MonstrVB is a real hoopy frood
...
C: USER MonstrVB
< p> S:-ERR sorry, no mailbox for frated here
Команда: ...