POP3
Post Office Protocol 3 POP3
|
- Уровень:
- Прикладной
- Семейство:
- TCP/IP
- Порт:
- 110 (TCP)
- Назначение:
- Получение электронной почты
- Спецификация:
- RFC 1939 / STD 53
- Клиенты:
- MUA (MS Outlook, Mozilla Thunderbird, The Bat!, KMail, mutt)
- Серверы:
- Qpopper, MS Exchange Server, Communigate Pro
- Расширяемость:
- Доп. команды (RFC 2449)
POP3 (англ. Post Office Protocol Version 3 — протокол почтового отделения, версия 3) — это сетевой протокол, используемый MUA для получения сообщений электронной почты с сервера. Обычно используется в паре с протоколом SMTP. Предыдущие версии протокола (POP, POP2) устарели. Альтернативным протоколом для сбора сообщений с почтового сервера является IMAP. По умолчанию использует TCP-порт 110. При перенастройке порты можно изменять. Стандарт протокола POP3 определён в RFC 1939. Расширения и методы авторизации определены в RFC 2195, RFC 2449, RFC 1734, RFC 2222, RFC 3206, RFC 2595. Существуют реализации POP3-серверов, поддерживающие TLS и SSL.
Состояния сеансаПравить
В протоколе POP3 предусмотрено 3 состояния сеанса:
- Авторизация
- Клиент проходит процедуру Аутентификации
- Транзакция
- Клиент получает информацию о состоянии почтового ящика, принимает и удаляет почту
- Обновление
- Сервер удаляет выбранные письма и закрывает соединение
Команды протоколаПравить
APOP [имя] [digest]Править
Команда служит для передачи серверу имени пользователя и зашифрованного пароля(digest)
- Аргументы
- [имя] - строка, указывающая имя почтового ящика.
[digest]- зашифрованная временная метка паролем пользователя по алгоритму MD5. В случае поддержки этой команды временная метка получается при соединении с сервером:
+OK POP3 server ready <[email protected]>
- Ограничения
- Её поддержка не является обязательной
- Возможные ответы
- +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
Пример сессииПравить
Это пример сессии с поддержкой зашифрованных паролей (APOP, RFC 1939): S: <Сервер ожидает входящих соединений на порту 110> C: <подключается к серверу> S: +OK POP3 server ready <[email protected]> C: APOP mrose c4c9334bac560ecc979e58001b3e22fb S: +OK mrose's maildrop has 2 messages (320 octets) C: STAT S: +OK 2 320 C: LIST S: +OK 2 messages (320 octets) S: 1 120 S: 2 200 S: . C: RETR 1 S: +OK 120 octets S: <сервер передает сообщение 1> S: . C: DELE 1 S: +OK message 1 deleted C: RETR 2 S: +OK 200 octets S: <сервер передает сообщение 2> S: . C: DELE 2 S: +OK message 2 deleted C: QUIT S: +OK dewey POP3 server signing off (maildrop empty) C: <закрывает соединение> S: <продолжает ждать входящие соединения> Вариант начала сессии, при котором пароль передается открытым текстом.: C: USER mrose S +OK User accepted C: PASS mrosepass S +OK Pass accepted
СсылкиПравить
- Лекция Масич о РОРЗ: [1]