POP3

Материал из Provizorii
Перейти к: навигация, поиск
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

Пример сессии

Место 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

Ссылки