POP3
Материал из Википедии — свободной энциклопедии
| Название: | Post Office Protocol 3 |
|---|---|
| Уровень (по модели ВОС): | Прикладной |
| Семейство: | 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 Основная задача протокола SMTP (Simple Mail Transfer Protocol) заключается в том, чтобы обеспечивать передачу электронных сообщений (почту). Для работы через протокол SMTP клиент создаёт TCP соединение с сервером через порт 25. Затем клиент и SMTP сервер обмениваются информацией пока соединение не будет закрыто или прервано. Основной процедурой в SMTP является передача почты (Mail Procedure). Далее идут процедуры форвардинга почты (Mail Forwarding), проверка имён почтового ящика и вывод списков почтовых групп. Самой первой процедурой является открытие канала передачи, а последней - его закрытие. |
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 <1896.698370952@meshach.smallorg.org>
- Ограничения
- Её поддержка не является обязательной
- Возможные ответы
- +OK maildrop has n message
- -ERR password suplied for [имя] is incorrect
[править] DELE [сообщение]
Сервер помечает указанное сообщение для удаления. Сообщения, помеченные на удаление, реально удаляются только после закрытия транзакции (закрытие транзакций происходит обычно после посыла команды QUIT, кроме этого, например, на серверах закрытие транзакций может происходить по истечению определенного времени, установленного сервером).
- Аргументы
- [сообщение] - номер сообщения.
- Ограничения
- Доступна после успешной идентификации
- Возможные ответы
- +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 <1896.697170952@dbc.mtview.ca.us> 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
[править] Ссылки
| Это незавершённая статья о компьютерных сетях. Вы можете помочь проекту, исправив и дополнив её. |

