Рассказываем про различия почтовых протоколов POP3 и IMAP: их устройство, преимущества и недостатки. Из статьи вы узнаете, на какие характеристики обращать внимание при выборе.
POP3 это протокол по которому мы можем получить почту с сервера, для подобной задачи, используется ещё протокол IMAP, но о нём я возможно напишу в будущем, когда столкнусь с ним. А для отправки почты используется как правило SMTP протокол, но речь здесь пойдёт о получении почты. Сначала немного теории.
Как и обещал, продолжаю публиковать описания различных сетевых протоколов. Поскольку в прошлый раз мой пост был о протоколе SMTP, логично продолжить тему об электронной почте.
Протокол POP3 (Post Office Protocol — version 3, третья версия протокола почтового отделения) является наиболее распространенным протоколом получения электронной почты с почтового сервера. Для этих целей также используется IMAP. В IMAP предусмотрено больше возможностей, чем в POP3, но зато POP3 намного проще. Для сравнения — POP3 описан в RFC1939, занимающем всего 20 страниц, а RFC3501, описывающий IMAP, состоит из целых 108 страниц. В этом посте речь пойдет о протоколе POP3.
Как всегда, начнем с запуска утилиты telnet и живого примера:
Здесь мы соединяемся с pop3-сервером, работающим обычно на 110-м порту и проходим аутентификацию (не путать с авторизацией). Если в приветствии сервера присутствует похожая на e-mail строка в треугольных скобках (timestamp), значит сервер поддерживает команду APOP, позволяющую передавать пароль в зашифрованном (точнее — хэшированном) виде. В этом примере хэш вычислен следующим образом:
То есть происходит конкатенация timestamp с паролем, а от результата вычисляется MD5. Преимущество этого метода в том, что даже при использовании незащищенного соединения злоумышленник не сможет перехватить пароль. Он увидит только хэш, который будет совершенно бесполезен, поскольку для каждого нового соединения сервер использует уникальный timestamp. Чтобы узнать пароль необходимо взломать хэш c помощью перебора, что практически бесполезно для достаточно сильных паролей, которые к тому же меняются хотя бы раз в пол года.
Недостаток метода в том, что на стороне сервера пароли приходится хранить в открытом виде, иначе как проверить правильность хэша, переданного пользователем? Если злоумышленник получит доступ к базе данных, то сможет украсть все пароли.
Очевидно, предпочтительнее использовать этот метод в связке с зашифрованным соединением, чем команду APOP. В случае, если аутентификация не будет пройдена, мы получим сообщение типа
Итак, аутентификация пройдена, теперь можно выполнить несколько команд. Начнем с нескольких довольно бесполезных команд:
Команда HELP позволяет получить список поддерживаемых сервером команд. В этом примере команды UIDL, XTND и XMIT являются расширениями протокола POP3 и сервер не обязан их поддерживать. Команда UIDL позволяет получить уникальные идентификаторы сообщений (см описание команды LIST ниже):
UIDL
+OK 6 messages
1 3876
2 3877
3 3878
4 3879
5 3880
6 3881
.
UIDL 2
+OK 2 3877
Для чего нужны XTND и XMIT не знаю и разбираться лениво 🙂 Желающие могут поискать ответ в Google.
Команда NOOP означает «ничего не делать». На ум приходит только одно ее применение — выполнять команду раз в 15 секунд, чтобы дать понять серверу, что клиент не повис.
Команда LAST устарела и использовать ее не следует. Когда-то считалось, что почтовый клиент должен забирать сообщения по очереди. Команда LAST использовалась для того, чтобы узнать id последнего полученного сообщения. В настоящее время она поддерживается некоторыми серверами исключительно для совместимости со старыми почтовыми клиентами.
Теперь перейдем к более полезным командам:
.
DELE 2
+OK marked deleted
Команда STAT позволяет определить количество сообщений в почтовом ящике
и их суммарный размер (868 540 байт).
Команда LIST показывает нам список идентификаторов сообщений и их размер в байтах. Заканчивается список точкой. В качестве аргумента этой команде можно передать id сообщения, тогда в ответ мы получим размер только этого сообщения.
Команда TOP позволяет получить заголовок сообщения (первый аргумент id сообщения) и первые N строк тела сообщения (второй аргумент команды). В этом примере я указал N=0, потому что хотел посмотреть только заголовок сообщения. С тем же успехом можно было просто указать только один аргумент. Заканчивается ответ сервера также точкой. Команда TOP часто используется почтовыми клиентами для того, чтобы определить отправителя и тему сообщения без необходимости скачивать письмо целиком. Это экономит время и трафик пользователя.
По завершению работы можно попрощаться с сервером и закрыть соединение:
QUIT
+OK CommuniGate Pro POP3 Server connection closed
Вот и все, что я хотел рассказать о протоколе POP3. Надеюсь, что вы нашли данную информацию полезной.
Метки: Протоколы, Сети.
- Краткое введение в протокол POP3 (pop3 mail )
- Распространенные ответы IMAP
- Недочеты IMAP
- Как работает POP3 протокол.
- Состояния сеанса POP3
- Пример диалога с почтовым сервером POP3
- Как работает протокол POP3
- Команды POP3
- Недостатки POP3
- Типы протоколов почты в почтовых аккаунтах
- Как выбрать подходящий тип учетной записи?
- Заключение
Краткое введение в протокол POP3 (pop3 mail )
IMAP — протокол, используемый для доступа к email-сообщениям, хранящимся на сервере электронной почты. Протокол позволяет пользователям получать доступ к сообщениям электронной почты непосредственно на сервере электронной почты
IMAP работает путем поддержания постоянного соединения между клиентом и сервером. Когда клиент запрашивает доступ к электронному сообщению, сервер отправляет копию сообщения клиенту. Когда пользователь удаляет или перемещает сообщение на одном устройстве, сервер обновляет статус сообщения, чтобы все другие устройства, имеющие доступ к той же учетной записи электронной почты, отразили эти изменения.
IMAP обычно использует порт 143 для незашифрованных соединений или порт 993 для зашифрованных соединений.
Распространенные ответы IMAP
IMAP позволяет юзерам получать доступ к своим email-сообщениям с различных устройств, поскольку все сообщения хранятся на сервере электронной почты. Протокол поддерживает синхронизацию в режиме реального времени: изменения, внесенные в сообщение на одном устройстве, отражаются на всех устройствах, имеющих доступ к учетной записи.
IMAP позволяет создавать и управлять папками на сервере электронной почты, что облегчает организацию и поиск email-сообщений. Также протокол поддерживает расширенные возможности поиска, облегчая поиск определенных писем.
Недочеты IMAP
IMAP требует постоянного подключения к интернету, поскольку сообщения хранятся на сервере электронной почты и доступ к ним осуществляется в режиме реального времени. Поскольку все сообщения хранятся на сервере электронной почты, пользователи могут иметь ограниченный контроль над использованием пространства для хранения.
Хранение всех сообщений электронной почты на сервере может представлять риск для безопасности в случае взлома сервера.
Как работает POP3 протокол.
Команды протокола POP3 состоят из ключевых слов, за которыми могут следовать аргументы например: DELE 1 — здесь мы ( т.е. клиент ) сообщили серверу, что мы помечаем 1 сообщение на удаление. ( Почему DELE, а не DELETE ? – читай ниже. )
Все команды серверу должны заканчиваться парой CRLF ( это, если писать скрипты, символы:
– В Unix подобных системах и
в форточках ).
Команды и их аргументы должны состоять из символов печатаемого диапазона ASCII.
Команда и её аргументы должны разделяться одним(!) пробелом.
Ключевое слово команды должно быть от 3 до 4 символов длиной, а её аргумент не может превышать 40 символов.
Согласно протоколу POP3, ответы сервера состоят из флага состояния – это:
+OK – Всё хорошо.
-ERR – Всё плохо.
S:+OK vasya’s maildrop has 2 messages (320 octets)CRLF
Как видно выше, ответ сервера так же заканчивается парой CRLF
Пара CRLF ассоциируется у меня со словом «Приём» — это, как по рации: когда ты всё, что хотел, сказал и в конце говоришь слово «Приём», что бы собеседник понял, что теперь ты его слушаешь.
С: LIST
S: +OK 2 messages (320 octets)CRLF
S: 1 120
S: 2 200
S: .
— В таком случае, если каждая строка, в соответствии с протоколом POP3 — заканчивается парой CRLF то, как нам понять, где конец ответа? В данном случае концом всего ответа нужно считать строку: где точка — это символ ASCII с кодом 46 и знакомая нам пара CRLF.
Если эта команда поддерживается, метка времени получается при соединении с сервером.
Отправляет имя пользователя.
Отправляет пароль пользователя.
Помечает указанное сообщение на удаление. Помеченные сообщения, на самом деле, удаляются только после закрытия транзакции, после того, как прошла команда QUIT. Так же закрытие транзакций на серверах может происходить по истечении временного лимита, установленного сервером. Что бы этого не произошло можно посылать серверу пинги
Это что то вроде пинга серверу, в случае доступности сервер всегда ответит +OK.
Можно посылать эту команду, время от времени, что бы сервер не закрыл соединения при длительном простое.
Получить сообщение с указанным номером.
Откат транзакций в пределах текущего сеанса. К примеру, если вы случайно пометили сообщение на удаление, то можно убрать метки, послав команду RSET.
Получить количество сообщений в ящике, а так же ещё и размер, занимаемый этими сообщениями на сервере.
Получить заголовки указанного сообщения, и указанное количество первых строк сообщения. Эти данные вернуться, разделённые пустой строкой.
Состояния сеанса POP3
Согласно протоколу POP3, сеанс состоит из нескольких режимов:
Здесь мы должны идентифицировать себя:
C: APOP vasya c4c9334bac560ecc979e58001b3e22fb
S: +OK vasya’s maildrop has 2 messages (320 octets)
Если всё проходит успешно, наши отношения с сервером переходят в режим транзакции.
— На данном этапе мы получаем информацию о состоянии нашего почтового ящика. Так же мы можем принять и отправить почту, а так же пометить письма на удаление. Завершить этот режим можно командой QUIT, получив её сервер, переходит к режиму UPDATE.
На данном этапе сервер удаляет помеченные нами на удаление письма, в общем, освобождает ресурсы и закрывает соединение.
Стоит заметить, что у почтового сервера POP3 может существовать так называемый INACTIVITY AUTOLOGOUT таймер. Он должен иметь, по крайней мере, 10-минутный интервал. Это означает, что если мы не общаемся с сервером в течение этого интервала, сервак «огорчается» на нас, и автоматически закрывает соединение, не переходя при этом, в режим UPDATE.
Пример диалога с почтовым сервером POP3
Конечно это самый простейший пример, просто что бы понять, как можно реализовать диалог с сервером. То что получается на выводе, я не привожу здесь. Вряд ли Вам будет интересна моя почта 🙂
Как работает протокол POP3
POP3 работает через стек TCP/IP и обычно использует порт 110 для незашифрованных соединений или порт 995 для зашифрованных соединений. Когда почтовый клиент настроен на использование POP3, он подключается к почтовому серверу и загружает все сообщения в папку входящих сообщений пользователя. Затем эти сообщения сохраняются на компьютере или устройстве пользователя и обычно удаляются с сервера электронной почты. Некоторые почтовые клиенты могут быть настроены так, чтобы оставлять копии сообщений на сервере.
Важно отметить, что POP3 работает только с получением электронной почты и не поддерживает отправку электронной почты. Для отправки электронной почты обычно используют SMTP.
Команды POP3
POP3 предоставляет автономный доступ. Пользователи могут загружать свои email-сообщения и получать к ним доступ в автономном режиме, для этого не требуется активного подключения к интернету. Также пользователи могут контролировать объем памяти, используемой на сервере электронной почты, загружая и удаляя сообщения с сервера.
Высокая совместимость — еще одно преимущество POP3. Широко используемый протокол совместим с большинством почтовых клиентов и серверов. Некоторые из них могут поддерживать расширенные версии POP3, такие как Authenticated POP или Secure POP. Они обеспечивают шифрование и проверку целостности сообщений.
Недостатки POP3
POP3 не обеспечивает синхронизацию между почтовыми клиентами и серверами. После загрузки сообщения любые изменения, внесенные в него на почтовом сервере (например, удаление или пометка как прочитанное), не будут отражены на почтовом клиенте.
Поскольку сообщения загружаются и удаляются с сервера, пользователь может получить доступ к своим сообщениям только с того устройства, на которое оно загружено. К тому же некоторые почтовые серверы могут иметь ограничения на объем дискового пространства, доступного для каждого пользователя. Это может ограничить количество сообщений, которые можно загрузить с помощью POP3.
POP3 не предоставляет надежных средств защиты, таких как шифрование или двухфакторная аутентификация, что делает учетные записи электронной почты уязвимыми для взлома и других угроз безопасности. Но уровень безопасности могут повысить расширенные версии протокола.
Типы протоколов почты в почтовых аккаунтах
POP3 (Post Office Protocol v.3) — протокол, используемый для получения сообщений с сервера электронной почты.
IMAP (Internet Message Access Protocol) — протокол, который используют для доступа к сообщениям, хранящимся на сервере электронной почты.
SMTP (Simple Mail Transfer Protocol) — текстовый протокол, используемый для отправки сообщений электронной почты между серверами. S MTP работает в архитектуре клиент-сервер. Клиент электронной почты отправителя, например, Microsoft Outlook или Apple Mail, использует SMTP для подключения к email-серверу и передачи сообщения на сервер получателя.
Почтовый протокол поддерживает аутентификацию и шифрование для обеспечения безопасной передачи сообщений. Стоит учитывать, что SMTP поддерживает только отправку электронной почты и не обеспечивает получение сообщений. Для получения email обычно используют POP3 и IMAP.
Чтобы поучаствовать в бете, оставьте заявку через тикет-систему в панели управления.
Microsoft Exchange — популярный сервер электронной почты и совместной работы, который использует свой собственный протокол для связи между удаленными серверами и клиентами. Протокол Microsoft включает в себя синхронизацию электронной почты, календаря, контактов и задач. Exchange использует различные протоколы для связи, включая MAPI, RPC и HTTP.
Как выбрать подходящий тип учетной записи?
Основное различие между учетными записями POP3 и IMAP заключается в способе хранения и доступа к сообщениям. P OP3 загружает email-сообщения на компьютер или устройство пользователя, IMAP позволяет получать доступ к сообщениям непосредственно на сервере электронной почты. Отличие IMAP — в более высокой доступности, но, поскольку протокол поддерживает постоянное соединение с сервером, он может работать медленнее и требовать больше ресурсов, чем его конкурент.
Выбирая между POP3 и IMAP для своего почтового ящика, рассмотрите свои потребности и особенности использования.
Факторы, которые следует учитывать:
Использование устройств. Если для доступа к почте и письмам в основном вы используете одно устройство, POP3 может быть подходящим вариантом. Если необходим доступ к электронной почте с нескольких устройств, IMAP станет лучшим выбором.
Хранение. Если у вас ограниченное пространство для хранения данных на устройстве и вам не нужно сохранять копию каждого сообщения электронной почты, подойдет POP3. При необходимости хранить архив сообщений IMAP будет лучше.
Организация электронной почты. Создавая подпапки или вложенные почтовые ящики внутри почтового ящика, пользователи могут группировать связанные сообщения вместе, что облегчает их поиск и управление ими. Если нужно организовать и синхронизировать между устройствам папки и ярлыки, IMAP может быть лучшим выбором. При использовании POP3 может потребоваться вручную создавать и управлять папками на каждом устройстве.
Подключение к интернету. В случае ограниченного подключения к интернету или частой работы в автономном режиме, вам подойдет POP3, поскольку он позволяет получить доступ к ранее загруженным сообщениям без интернета. Для доступа к сообщениям IMAP требуется подключение к интернету.
Заключение
Завершим описание протоколов тем, что еще раз проговорим, чем отличается IMAP от POP3.
POP3 — более простой протокол, подходящий для пользователей, которым нужен доступ к сообщениям электронной почты только с одного устройства. I MAP обеспечивает более комплексную работу с email. C другой стороны, IMAP может быть медленнее, требовать больше ресурсов и постоянного подключения к интернету. Впрочем, с ростом доступности мобильного интернета IMAP становится все более популярным протоколом для доступа к сообщениям электронной почты.

