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

Пример сессии[править | править код]

Место POP3 в передаче почты (e-mail)

Это пример сессии с поддержкой зашифрованных паролей (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]

eo:POP3 hu:POP3 ku:POP3 lt:Post Office Protocol nn:POP3