POP3
Название: | Post Office Protocol 3 |
---|---|
Уровень (по модели OSI): | Прикладной |
Семейство: | TCP/IP |
Создан в: | {{{Создан}}} г. |
Порт/ID: | 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) используется почтовым клиентом для получения сообщений электронной почты с сервера. Обычно используется в паре с протоколом SMTP.
Предыдущие версии протокола (POP, POP2) устарели.
Стандарт протокола POP3 определён в RFC 1939. Расширения и методы авторизации определены в RFC 2195, RFC 2449, RFC 1734, RFC 2222, RFC 3206, RFC 2595.
Существуют реализации POP3-серверов, поддерживающие TLS и SSL.
Альтернативным протоколом для сбора сообщений с почтового сервера является IMAP.
Содержание
Состояния сеанса
В протоколе 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