Пример POP3 сессии. Что лучше использовать, POP3 или IMAP

Как работать с электронной почтой, все знают. Открываем браузер, ищем нужный ресурс, авторизуемся и читаем поступившую электронную корреспонденцию. Почтовые протоколы pop3 и imap позволяют работать с почтой без браузера, посредством программ-клиентов, будто файлы находятся непосредственно на локальном компьютере.

POP3 — интернет-протокол прикладного уровня, обеспечивающий доступ к почтовому серверу посредством TCP/IP и с использованием порта 110.
IMAP — интернет-протокол прикладного уровня, обеспечивающий доступ к почтовому серверу посредством TCP и с использованием порта 143.

Разница между POP3 и IMAP

Разница между POP3 и IMAP прикладная. Оба протокола выполняют идентичные задачи, только POP3 позволяет скачивать все файлы единовременно (в этих файлах и хранится корреспонденция), а IMAP — сначала список файлов и потом выборочно — сами. Это основное отличие протоколов, и более новый IMAP был создан именно для реализации такого отличия: клиентов не устраивала необходимость разбирать почту локально, тогда как на сервере после загрузки файлы удалялись. На серверах IMAP пользователь самостоятельно управляет своими сообщениями.
Клиенты pop3 подключаются к сети только для скачивания файлов на локальный компьютер, отключаются после завершения операции и дальнейшая работа программ проходит в оффлайн-режиме. Клиенты IMAP могут работать и в оффлайне, но онлайн для них предоставляет больше возможностей: например, управление сообщениями на сервере. Как следствие, оффлайн-доступ требует меньше ресурсов и более быстрый, онлайн же более зависим от состояния сети и демонстрирует относительно длительное время отклика.
POP3 предполагает монопользовательский доступ к почтовому ящику, IMAP разрешает подключение к нему нескольких клиентов, при этом работа любого из них не ограничивается, и каждый видит изменения, вносимые другими. Также IMAP позволяет пользователю видеть статус сообщений, перемещать их, создавать папки и удалять так, будто он имеет дело с локальной копией. Автоматического удаления сообщений с сервера не происходит.
Еще одно важное отличие IMAP от POP3 — в возможности расширения протокола IMAP и получения в итоге тонкой настройки, например, прав доступа клиентов к серверу. Несмотря на то, что POP3 ввиду своего долгожительства распространен шире и настроить его проще, IMAP представляется более удобным при решении многих задач, к примеру, корпоративных.

TheDifference.ru определил, что отличие IMAP от POP3 заключается в следующем:

IMAP использует порт 143, POP3 использует порт 110.
IMAP работает как в онлайн, так и в оффлайн-режиме, POP3 — только в оффлайн.
IMAP позволяет управлять сообщениями непосредственно на сервере, POP3 загружает файлы на локальный компьютер пользователя.
POP3 обеспечивает более быстрый доступ
В IMAP можно настроить разделение прав доступа.

POP3

POP3 — протокол для приема сообщений электронной почты.

При просмотре почты с использованием протокола POP3 все электронные письма скачиваются пользователю на компьютер и автоматически удаляются с сервера (хотя это можно отключить). Все дальнейшие действия с письмами будут производиться именно на компьютере пользователя.

Протокол POP3 предпочтителен, если почтовым ящиком пользуется лишь один человек с одного-единственного компьютера, и доступ к почте необходим даже при отсутствии подключения к интернету.

IMAP

IMAP — протокол, поддерживающий прием и возможность управления электронной почтой прямо на почтовом сервере.

При использовании протокола IMAP электронные письма всегда находятся на сервере и скачиваются оттуда каждый раз при просмотре. Это очень удобно, когда доступ к почтовому ящику должны иметь несколько человек — все операции с письмами, которые произведет один из них (изменение статуса письма на «прочитанное», перемещение писем между папками и т. п.) увидят и все остальные. Недостаток — для работы с почтой, даже со старыми письмами, необходимо активное подключение к интернету.

SMTP

SMTP-сервер — это почтовый сервер, поддерживающий только отправку электронной почты.

При использовании SMTP-сервера используется порт 25. Некоторые интернет-провайдеры блокируют порт 25. В этом случае, вам нужно либо обратиться к администратору сети, чтобы он разблокировал порт, либо использовать альтернативный порт 587.

Что лучше: POP3 или IMAP – это не только дело вкуса.

POP3 загружает всю почту с сервера на локальный компьютер. При этом почта, в большинстве случаев, удаляется с сервера сразу после загрузки в почтовый клиент, или по прошествии нескольких дней. Это означает, что письма находятся только в одном месте – или на сервере, или на компьютере. Если что-то произойдет с компьютером, то вы столкнетесь с проблемой.

Вместе с тем, POP3 до сих пор остается самым распространенным протоколом загрузки электронной почты. Расшифровывается аббревиатура «POP», как «Post Office Protocol». Он и работает, как традиционное почтовое отделение. Отличие IMAP от POP3 состоит в том, что последний похож на почтальона, который переносит письмо из конторы к вам домой. Естественно, что, если письмо находится у вас, оно уже не может быть ни в каком другом месте.

Рассматривая вопрос, что лучше: IMAP или POP3, отдавайте предпочтение второму варианту, если на сервере вам выделено немного места, а получение дополнительных мегабайт обойдется слишком дорого. Большинство поставщиков услуг электронной почты устанавливают определенную квоту на объем корреспонденции. Если она исчерпана, то получать новые электронные письма вы сможете только после удаления части старых.

IMAP – это более новая разработка. Расшифровывается он, как «Internet Message Access Protocol», и, как следует из названия, лишь обеспечивает доступ к сообщениям на сервере. Отличие IMAP от POP3 состоит в том, что первый протокол вначале запрашивает список сообщений, хранимых на почтовом сервере. После этого ваш почтовый клиент загружает локальные копии электронных писем и позволяет работать с ними, но сами письма остаются на сервере, до тех пор, пока вы явно не удалите их оттуда.

Выбирая между POP3 или IMAP, прежде всего, следует ответить на вопрос, собираетесь ли вы работать с электронной почтой с нескольких устройств или только одного. Если вы читаете и отправляете электронные письма с домашнего и рабочего компьютера, ноутбука и планшета, то лучше всего полагаться на протокол IMAP.

Почти все крупные поставщики услуг электронной почты(Gmail, Yahoo, Hotmail и т.д.) поддерживают этот протокол. Кроме того, Microsoft Exchange является вариантом IMAP. Этот протокол позволяет легко синхронизировать электронную почту между смартфоном, планшетом и используемыми компьютерами. Вы также сможете получить доступ к своей корреспонденции с помощью обычного интернет обозревателя. Ведь письма сохраняются на сервере, а многие поставщики услуг электронной почты создают удобный интерфейс для веб-доступа.

В современном мире, наполненном всевозможными цифровыми гаджетами, выбирая между POP3 и IMAP, лучше отдать предпочтение последнему, более новому протоколу. С его помощью мы разрываем жесткую связь между устройством, почтовым клиентом и сервером электронной почты. Теперь место и тип операционной системы не имеют значения. А удешевление хранения данных, позволяет получить в свое распоряжение почтовые ящики огромного объема. Сегодня лишь единичные провайдеры дают пользоваться электронной почтой только по протоколу POP3. Если у вас нет каких-либо особых причин использовать POP3 – выбирайте протокол IMAP.

Сегодня мы подробно расскажем про наиболее используемые в сети интернет протоколы – POP3, IMAP и SMTP. Каждый из указанных протоколов имеет определенное назначение и функциональные возможности. Давайте попробуем разобраться.

Протокол POP3 и его порты

Post Office Protocol 3 (POP3) это стандартный протокол почты созданные для получения электронных писем с удаленного сервера на e-mail клиент.POP3 позволяет вам сохранить почтовое сообщение на ваш компьютер и даже прочесть его, в случае, если вы находитесь не в сети. Важно отметить, что если вы решили использовать POP3 для подключения к учетной записи почты, письма, которые уже скачаны на компьютер, будут удалены с почтового сервера. Как пример, если вы используете несколько компьютеров для подключения к одному почтовому аккаунту, то протокол POP3 может быть не лучшим выбором в данной ситуации. С другой стороны, так как почта хранится локально, на ПК конкретного пользователя, это позволяет оптимизировать дисковое пространство на стороне почтового сервера.

По умолчанию, протокол POP3 использует следующие порты:

  • Порт 110 – это порт протокола POP3 по умолчанию. Не является безопасным.
  • Порт 995 – этот порт следует использовать в том случае, если вы хотите установить безопасное соединение.

Протокол IMAP и порты

Internet Message Access Protocol (IMAP) – это почтовый протокол, созданный для доступа к почте с локального почтового клиента. IMAP и POP3 – наиболее популярные в сети интернет протоколы, используемые для получения e-mail. Оба этих протокола поддерживается всеми современными почтовыми клиентами (MUA - Mail User Agent) и WEB – серверами.

В то время как POP3 позволяет доступ к почте только с одного приложения, IMAP позволяет доступ из множества клиентов. По этой причине, IMAP наиболее адаптивен в тех случаях, когда доступ к одному почтовому аккаунту необходим для нескольких пользователей.

По умолчанию, протокол IMAP использует следующие порты:

  • Порт 143 – порт по умолчанию. Не безопасен.
  • Порт 993 – порт для безопасного соединения.
Протокол SMTP и его порты

Simple Mail Transfer Protocol (SMTP) – это стандартный протокол для отправки почтовых сообщений по сети интернет.

Данный протокол описан в RFC 821 и RFC 822, впервые опубликованных в августе 1982 года. В рамках данных RFC, формат адреса должен быть в формате имя_пользователя@доменное_имя . Доставка почты, аналогична работе обычной почтовой службы: например, письмо на адрес [email protected], будет интерпретирован так: ivan_ivanov – адрес, а merionet.ru – почтовый индекс. Если доменное имя получателя отличается от доменного имени отправителя, то MSA (Mail Submission Agent) отправит письмо через Mail Transfer Agent (MTA). Главная идея MTA в том, чтобы перенаправлять письма в другую доменную зону, по аналогии, как традиционная почты отправляет письма в другой город или область. MTA так же получает почту от других MTA.

Протокол SMTP использует следующие порты.

Базовые операции

Первоначально, сервер прослушивает TCP соединение на порту 110. Когда клиент желает воспользоваться сервисом POP3, он должен установить соединение с сервером. После установки соединения сервер посылает клиенту приветствие. Клиент и POP3 сервер обмениваются командами и ответами (в указанном порядке) до тех пор, пока соединение не будет закрыто или прервано. Команды POP3 состоят из ключевого слова, за которым может следовать один или несколько параметров. Все команды заканчиваются парой CRLF. Ключевые слова и аргументы состоят из печатаемых ASCII символов. Ключевые слова и аргументы разделены одиночным пробелом. Ключевые слова состоят из 3-х или 4-х символа, каждый аргумент может быть длиной до 40 символов.
Ответы состоят из индикатора состояния и ключевого слова. Все ответы заканчиваются парой CRLF. В настоящее время есть два индикатора состояния: положительный (+OK) и отрицательный (-ERR).

Определенные ответы могут быть многострочными. В этом случае, после первой строки ответа заканчивающейся CRLF, каждая дополнительно посланная строка заканчивается парой CRLF. После того как все строки ответа посланы, последняя строка будет заканчиваться завершающим октетом — символом. («.», десятичный код 46) и парой CRLF. POP3 сессия состоит из нескольких стадий. После установки TCP соединения, сервер посылает приветствие и сессия переходит в состояние AUTHORIZATION. На этом этапе клиент должен идентифицировать себя на сервере. После успешной идентификации сессия переходит в состояние TRANSACTION. В этой стадии клиент запрашивает выполнение команд на сервере. Когда клиент посылает команду QUIT сессия переходит в состояние UPDATE. На этом этапе POP3 сервер освобождает все ресурсы занятые в стадии TRANSACTION и заканчивает работу. TCP соединение после этого закрывается. POP3 сервер МОЖЕТ иметь inactivity autologout таймер (таймер авто-завершения сессии при бездействии). Такой таймер ДОЛЖЕН быть установлен как минимум на 10 минут. Если клиент не передает серверу команды заданный интервал времени, то сервер разрывает TCP соединение без перехода в состояние UPDATE, т.е. без удаления сообщений и посылки каких либо ответов клиенту.

Состояние AUTHORIZATION

После открытия клиентом TCP соединения, сервер посылает однострочное приветствие. Строка должна заканчиваться CRLF.
Пример:

S: +OK POP3 server ready

Примечание:
В качестве приветствия POP3 сервер должен всегда посылать положительный ответ.

Теперь сессия находится в состоянии AUTHORIZATION. Клиент должен идентифицировать себя на сервере. В данном документе описано два способа, комбинация команд USER и PASS и команда APOP. Для идентификации с помощью команд USER и PASS, клиент должен сначала послать команду USER. Если сервер ответил положительным индикатором состояния (+OK), то клиент должен послать команду PASS чтобы закончить авторизацию или послать команду QUIT для завершения сессии. Если сервер отправил отрицательный ответ (-ERR) на команду USER, то можно повторить авторизацию или закончить сессию командой QUIT.
После получения команды PASS, сервер использует пару аргументов USER и PASS для определения доступа к почтовому ящику.
Как только сервер определил с помощью какой либо команды идентификации, что клиенту нужно дать доступ к соответствующему почтовому ящику, POP3 сервер получает монопольный доступ к почтовому ящику, чтобы предотвратить изменение или удаление сообщений до состояния UPDATE. Если блокировка прошла успешно, сервер посылает положительный ответ и строку приветствия. Теперь сессия переходит в состояние TRANSACTION без сообщений помеченных как удаленные. Если почтовый ящик не может быть открыт по каким либо причинам (например, не может быть выполнена блокировка или клиенту отказано в доступе к соответствующему почтовому ящику), сервер отвечает отрицательным индикатором состояния. После отрицательного ответа сервер может закрыть соединение. Если сервер не закрыл соединение, клиент может послать новую команду идентификации и начать все заново или послать команду QUIT.
После того как сервер открыл почтовый ящик, он присваивает номер каждому сообщению и отмечает размер сообщения в октетах. Первое сообщение будет иметь номер 1, следующее – номер 2 и так далее. В POP3 командах все числа представлены в десятичной системе.

Вот резюме по трем командам рассмотренным к настоящему времени:

USER имя

Аргументы:
Строка идентификации почтового ящика (обязательный).

Ограничения:
Может быть передана только в состоянии AUTHORIZATION после POP3 приветствия или неуспешной команды USER или PASS.

Возможные ответы:

OK name is a valid mailbox -ERR never heard of mailbox name

PASS строка

Аргументы:
пароль к почтовому ящику (обязательный).

Ограничения:
Может быть передана только в состоянии AUTHORIZATION после успешной команды USER.

Подробности:
Команда PASS имеет только один аргумент, сервер может трактовать пробел в параметре как часть пароля, вместо разделителя аргументов.

Возможные ответы:

OK maildrop locked and ready -ERR invalid password -ERR unable to lock maildrop

C: USER mrose S: +OK mrose is a real hoopy frood C: PASS secret S: +OK mrose"s maildrop has 2 messages (320 octets) ... C: USER mrose S: +OK mrose is a real hoopy frood C: PASS secret S: -ERR maildrop already locked

QUIT

Аргументы:
нет

Ограничения:
нет

Возможные ответы:

C: QUIT S: +OK dewey POP3 server signing off

Состояние TRANSACTION

После того как клиент успешно идентифицировал себя на сервере и сервер заблокировал и открыл соответствующий почтовый ящик, сессия переходит в состояние TRANSACTION. Теперь клиент может запрашивать информацию. После каждой команды сервер отправляет ответ. В конце клиент отправляет команду QUIT и сессия переходит в состояние UPDATE.

STAT

Аргументы:
нет

Ограничения:

Подробности:
POP3 сервер отправляет положительный ответ со строкой содержащей информация о почтовом ящике. Эта строка называется «drop listing». Для легкого разбора, POP3 сервера использую определенный формат для «drop listing». Положительный ответ включает в себя: индикатор состояния (+OK), дальше следуют число сообщений и размер сообщений в октетах, разделенные одиночным пробелом. Сообщения, помеченные как удаленные, не учитываются.

Возможные ответы:

C: STAT S: +OK 2 320

LIST сообщение

Аргументы:
Номер сообщения (необязательный), сообщения, помеченные как удаленные, не учитываются.

Ограничения:
Может быть передана только в состоянии TRANSACTION.

Подробности:
Если задан аргумент, сервер передает положительный ответ со строкой информации для заданного сообщения. Такая строка называется «scan listing». Если аргумент не задан и то сервер посылает многострочный ответ. После индикатора состояния (+OK), для каждого сообщения в почтовом ящике, POP3 сервер посылает строку содержащую информацию для данного сообщения. Эта строка называется “scan listing”. Все POP3 сервера используют определенный формат для “scan listing”. “scan listing” состоит из номера сообщения после которого, через одиночный пробел следует точный размер сообщения в октетах. Данный документ не указывает что должно следовать за размером сообщения, единственное требование чтобы ответ заканчивался парой CRLF. Различные расширения могут включать дополнительную информацию.

Возможные ответы:

OK scan listing follows -ERR no such message

C: LIST S: +OK 2 messages (320 octets) S: 1 120 S: 2 200 S: . ... C: LIST 2 S: +OK 2 200 ... C: LIST 3 S: -ERR no such message, only 2 messages in maildrop

RETR сообщение

Аргументы:

Ограничения:
Может быть передана только в состоянии TRANSACTION.

Подробности:
При положительном ответе, после положительного индикатора состояния сервер передает многострочный ответ, содержащий заданное сообщение.

Возможные ответы:

OK message follows -ERR no such message

DELE сообщение

Аргументы:
Номер сообщения (обязательный), сообщения, помеченные как удаленные, не учитываются.

Ограничения:
Может быть передана только в состоянии TRANSACTION.

Подробности:
POP3 сервер помечает сообщение как удаленное. Все последующие обращения к этому сообщению будут вызывать ошибку. Фактически сервер не удаляет сообщение, пока не наступит состояние UPDATE.

Возможные ответы:

OK message deleted -ERR no such message

C: DELE 1 S: +OK message 1 deleted ... C: DELE 2 S: -ERR message 2 already deleted

NOOP

Аргументы:
Нет.

Ограничения:
Может быть передана только в состоянии TRANSACTION.

Подробности:
Сервер ничего не делает и отвечает только положительно.

Возможные ответы:

RSET

Аргументы:
Нет.

Ограничения:
Может быть передана только в состоянии TRANSACTION.

Подробности:
Если сообщение было помечено как удаленное, то сервер снимает эту отметку. Ответ всегда положительный.
Возможные ответы:

Состояние UPDATE

Когда клиент посылает команду QUIT в состоянии TRANSACTION, сервер переходит на стадию UPDATE (Обратите внимание, что если клиент посылает команду в состоянии AUTHORIZATION, то сервер завершает сессию и не входит в стадию UPDATE). Если сессия завершается по каким-либо другим причинам, без посылки команды QUIT, POP3 сессия не входит в стадию UPDATE и ни одно сообщение из почтового ящика не должно быть удаленно.

QUIT

Аргументы:
Нет.

Ограничения:
Нет.

Подробности:
Сервер удаляет все сообщения помеченные как удаленные. Посылается ответ. TCP соединение закрывается.

Возможные ответы:

C: QUIT S: +OK dewey POP3 server signing off (maildrop empty) ... C: QUIT S: +OK dewey POP3 server signing off (2 messages left) ...

Необязательные команды

POP3 команды, описанные выше должны поддерживаться всеми POP3 серверами. Дополнительные команды дают клиенту большую свободу в обработке сообщений. Примечание: этот документ поощряет поддержку дополнительных команд, вместо внесений дополнительных сведений в “drop listing” и “scan listing”.

TOP сообщение n

Аргументы:
Номер сообщения (обязательный) и неотрицательное число, указывающее на количество строк тела сообщения которое сервер передаст клиенту, аргумент обязательный. Нельзя обращаться к сообщениям помеченным как удаленные.

Ограничения:
Может быть передана только в состоянии TRANSACTION.

Подробности:
После положительного ответа сервер посылает многострочный ответ. После начального +OK, сервер посылает заголовок сообщения, пустую строку и указанное количество строк из тела сообщения.

Примечание:
Если число строк, которые требует клиент, больше числа строк в сообщение, то сервер передает все сообщение полностью.

Возможные ответы:

OK top of message follows -ERR no such message

C: TOP 1 10 S: +OK S: S: . ... C: TOP 100 3 S: -ERR no such message

UIDL сообщение

Аргументы:
Номер сообщения (необязательный). Нельзя обратиться к сообщению помеченному как удаленное.

Ограничения:
Может быть передана только в состоянии TRANSACTION.

Подробности:
Если аргумент задан, сервер посылает положительный ответ со строкой содержащей информацию о заданном сообщении. Эта строка называется «unique-id listing».
Если аргумент не задан, то при положительном ответе сервер посылает многострочный ответ. После индикатора состояния (+OK), и строку содержащую информацию о сообщении.
Для упрощения синтаксического разбора все сервера должны использовать определенный формат «unique-id listing”. «unique-id listing” состоит из номера сообщения и уникального идентификатора разделенные одиночным пробелом. За уникальным идентификатором не должно следовать ни какой дополнительной информации.
Уникальный идентификатор это произвольная, определяемая сервером, строка, содержащая символы в диапазоне от 0x21 до 0x7E, которая однозначно идентифицирует сообщение в пределах почтового ящика. Идентификатор сохраняется на все время сессии. Сервер не должен многократно использовать идентификатор для данного почтового ящика, пока существует объект использующий его. Сообщения помеченные как удаленные не учитываются.



Просмотров