Imap что это
Imap что это
IMAP или POP3: какой протокол позволяет получать электронную почту на любом устройстве
Жена Уэйна Циммермана обычно читает электронную почту на своем ПК. Но когда она пытается просмотреть почту на компьютере мужа, сообщения теряются.
Ниже рассмотрено два способа обойти эту проблему
Использовать лучший протокол
В отличие от POP3 протокол IMAP используется для синхронизации клиентского программного обеспечения с сервером. Все электронные письма будут доступны на обоих устройствах. Когда вы удаляете письмо в своем клиенте, протокол IMAP также удаляет его с сервера.
В Outlook 2016 ( который по умолчанию использует протокол POP3 ), нельзя напрямую изменить протокол учетной записи. Но можно создать новую учетную запись и удалить старую:
Использовать веб-клиент
Если вы проверяете свою почту через почтовый сервис, а не через программу на ПК, загрузка писем на тот или иной компьютер не является проблемой.
Пожалуйста, опубликуйте свои мнения по текущей теме статьи. Мы очень благодарим вас за ваши комментарии, дизлайки, отклики, лайки, подписки!
Пожалуйста, оставьте свои отзывы по текущей теме материала. За комментарии, лайки, отклики, подписки, дизлайки низкий вам поклон!
В чем разница между POP и IMAP?
Протокол POP3 (Post Office Protocol — Протокол почтового отделения)
Протокол POP3 — это более ранний протокол, который изначально был разработан для использования только на одном компьютере. В отличие от современных протоколов, использующих двустороннюю синхронизацию, протокол POP3 поддерживает только одностороннюю синхронизацию электронной почты, позволяя пользователям скачивать электронные письма только с сервера в клиент. По этой причине учетным записям POP3 не хватает большинства основных функций, которые можно найти в более современных службах, таких как:
Возможность пометить сообщение как прочитанное на нескольких устройствах, т.е. при каждой загрузке сообщения электронной почты пользователем на другом устройстве с помощью POP оно будет отображаться как новое сообщение вместо указания того, что оно было прочитано на другом устройстве.
Возможность отправки элементов с нескольких устройств. Отправленные элементы невозможно синхронизировать с помощью POP. Их можно сохранить только на том устройстве, на котором они были созданы.
Возможность отправки сообщений электронной почты на ваше устройство по мере их поступления. Вместо этого вы должны настроить на своем устройстве периодическую автоматическую проверку почтового сервера на предмет поступления новых сообщений.
Наличие созданных специальных папок или настроенных параметров на одном устройстве, которые доступны на всех устройствах, использующих эту учетную запись электронной почты. При использовании POP пользователи должны вручную создавать папки или по-отдельности настраивать параметры на всех своих устройствах. Это означает, что если пользователи упорядочивают свою электронную почту на одном устройстве, то им придется делать это повторно на всех остальных устройствах, использующих эту учетную запись электронной почты POP.
Протокол IMAP (Internet Messaging Access Protocol — Протокол доступа к Интернет-сообщениям)
Для учетных записей IMAP сообщения хранятся на удаленном сервере. Пользователи могут входить посредством нескольких почтовых клиентов на компьютерах или мобильных устройствах и читать одни и те же сообщения. Все изменения в почтовом ящике будут синхронизированы на нескольких устройствах, а сообщения будут удалены с сервера только в том случае, если пользователь удалит электронное письмо.
Вы можете выполнять вход одновременно с нескольких компьютеров и устройств.
Ваш архив почты синхронизируется и хранится на сервере для обеспечения доступа всех подключенных устройств.
Отправленные и полученные письма хранятся на сервере до окончательного удаления пользователем.
Что такое IMAP и POP?
IMAP и POP — это два метода доступа к электронной почте. Рекомендуется использовать IMAP, если вам требуется проверять почту с нескольких разных устройств (например, телефона, ноутбука и планшета).
IMAP обеспечивает вам доступ к электронной почте с любого устройства, где бы вы при этом ни находились. Когда вы читаете почтовое сообщение с помощью IMAP, оно не скачивается и не сохраняется на вашем компьютере — вы просто читаете его из службы электронной почты. Это приведет к проверке электронной почты с разных устройств в любой точке мира: телефона, компьютера, компьютера друга.
IMAP скачивает сообщение, только когда вы его щелкаете, и вложения не скачиваются автоматически. Так вы сможете проверять сообщения гораздо быстрее, чем с помощью POP.
POP связывается с вашей службой электронной почты и скачивает из нее все новые сообщения. После скачивания на компьютер с Windows или Mac OS сообщения удаляются из почтовой службы. Это значит, что после скачивания почтового сообщения к нему можно обращаться только с того же компьютера. Если вы попытаетесь обратиться к сообщению с другого устройства, ранее скачанные сообщения будут недоступны.
Отправленная почта хранится локально на компьютере с Windows или Mac OS, а не на почтовом сервере.
Многие поставщики услуг Интернета предоставляют учетные записи электронной почты, которые используют POP.
Учетные записи веб-почты или почтовые приложения
Gmail, Outlook.com, Hotmail.com и iCloud — это веб-почта. Вход в учетную запись веб-почты выполняется в Интернете.
Если у вас есть компьютер с Windows или Mac OS, то для управления электронной почтой вы, вероятно, используете программу типа Outlook, Apple Mail или Thunderbird. Outlook, Apple Mail и Thunderbird — это почтовые приложения,которые вы устанавливаете на компьютере для управления электронной почтой. Они взаимодействуют с почтовыми службами, такими как Gmail или Outlook.com, получая и отправляя почту.
В почтовое приложение вы можете добавить любую учетную запись электронной почты, чтобы управлять ею оттуда. Например, вы можете добавить в приложение Outlook или Apple Mail учетные записи веб-почты (Gmail, Outlook.com, Hotmail.com, AOL и Yahoo) и почтовые учетные записи, предоставленные вашей организацией.
Добавление учетных записей веб-почты в почтовые приложения, такие как Outlook, Apple Mail, Thunderbird
Когда вы добавляете учетную запись электронной почты в почтовое приложение, оно пытается настроить доступ методом IMAP без вашего участия.
Трудности, которые могут при этом возникать у почтового приложения, обычно связаны с тем, что учетная запись настроена для доступа методом POP. В этом случае вам нужно перейти к поставщику услуг электронной почты и узнать имена pop- и SMTP-серверов, чтобы ввести данные в почтовое приложение. Эти сведения обычно выглядят как-то так:
Сервер входящих сообщений (IMAP): imap. имя службы>.com
Сервер входящей почты (POP): pop. имя службы>.com
Сервер исходящей почты (SMTP): smtp. имя службы>.com
Imap что это
Internet Message Access Protocol
143/TCP, 993/TCP (IMAP over SSL)
Доступ к почтовым ящикам
IMAP (англ. Internet Message Access Protocol ) — протокол прикладного уровня для доступа к электронной почте.
Базируется на транспортном протоколе TCP и использует порт 143.
IMAP предоставляет пользователю обширные возможности для работы с почтовыми ящиками, находящимися на центральном сервере. Почтовая программа, использующая этот протокол, получает доступ к хранилищу корреспонденции на сервере так, как будто эта корреспонденция расположена на компьютере получателя. Электронными письмами можно манипулировать с компьютера пользователя (клиента) без постоянной пересылки с сервера и обратно файлов с полным содержанием писем.
Для отправки писем используется протокол SMTP.
Содержание
Цель разработки протокола IMAP
Протокол IMAP представляет собой альтернативу POP3.
POP3 имеет ряд недостатков, и наиболее серьёзный из них — отсутствие возможностей по управлению перемещением и хранением сообщений на сервере. Сообщения, как правило, загружаются с почтового сервера все сразу, после чего они с сервера удаляются, то есть отсутствует возможность выбирать сообщения для получения.
Для решения проблем, связанных с этой особенностью POP3, в Вашингтонском университете был разработан новый протокол, предполагающий возможность получения пользователями электронной почты из одного почтового ящика из различных мест, при этом сообщения не распределяются между точками получения. Пользователю предоставляется возможность управлять сообщениями в его почтовом ящике и дополнительными функциями по обслуживанию почтовых ящиков на сервере.
Преимущества по сравнению с POP3
При использовании POP3 клиент подключается к серверу только на промежуток времени, необходимый для загрузки новых сообщений. При использовании IMAP соединение не разрывается, пока пользовательский интерфейс активен, а сообщения загружаются только по требованию клиента. Это позволяет уменьшить время отклика для пользователей, в чьих ящиках имеется много сообщений большого объёма.
Протокол POP требует, чтоб текущий клиент был единственным подключенным к ящику. IMAP позволяет одновременный доступ нескольких клиентов к ящику и предоставляет клиенту возможность отслеживать изменения, вносимые другими клиентами, подключенными одновременно с ним.
Благодаря системе флагов, определенной в IMAP4, клиент может отслеживать состояние сообщения (прочитано, отправлен ответ, удалено и т. д.); данные о флагах хранятся на сервере.
Клиенты IMAP4 могут создавать, переименовывать и удалять ящики и перемещать сообщения между ящиками. Кроме того, можно использовать расширение IMAP4 Access Control List (ACL) Extension (RFC 4314) для управления правами доступа к ящикам.
Поиск сообщений происходит на стороне сервера.
IMAP4 имеет явный механизм расширения.
Версии протокола IMAP
Сообщения и их атрибуты
IMAP работает только с сообщениями и не требует каких-либо пакетов со специальными заголовками.
Каждое сообщение имеет несколько связанных с ним атрибутов. Эти атрибуты могут быть определены индивидуально или совместно с другими атрибутами.
Каждому сообщению ставится в соответствие 32-битовый код, который при использовании совместно с уникальным идентификатором образует 64-битовую последовательность, гарантирующую однозначную идентификацию сообщения в почтовом ящике. Чем позже сообщение пришло, тем больше его UID.
UID ассоциируется с почтовым ящиком и посылается в виде кода uidvalidity отклика (ok) на фазе выбора почтового ящика. Если UID из предыдущей сессии по какой-то причине не может быть использован, UID должен быть инкрементирован.
UID сообщения не должно изменяться в пределах сессии, его не следует изменять и от сессии к сессии. Однако если невозможно сохранить UID сообщения в последующей сессии, каждая следующая сессия должна иметь новый уникальный код идентификатора, который должен быть больше, чем любой UID, использованный ранее.
Порядковый номер сообщения
Порядковый номер сообщения в почтовом ящике начинается с 1. Каждое сообщение, начиная со второго, имеет порядковый номер ровно на 1 больше, чем предшествующее ему.
В течение сессии допустимо изменение порядкового номера сообщения. Например, когда сообщение удаляется из почтового ящика, номера всех последующих сообщений изменяются.
Флаги сообщения
Этот атрибут представляет собой список из нуля или более именованных лексем, соотнесенный данному сообщению. Флаг устанавливается путём его добавления к этому списку и обнуляется путём его удаления. В IMAP 4.1 существует два типа флагов. Флаг может быть постоянным или действующим только на время данной сессии.
В настоящее время определены следующие системные флаги:
Внутренние дата и время сообщения на сервере
Время и дата получения сообщения. В случае доставки сообщения посредством протокола SMTP — дата и время доставки конечному адресату. Для сообщений, доставленных командой копирования — внутренняя дата и время отправителя сообщения. При использовании команды append — дата и время, заданные параметрами команды.
Прочие атрибуты
Взаимодействие клиента и сервера
Соединение IMAP 4.1 подразумевает установление связи между клиентом и сервером. Клиент посылает серверу команды, сервер клиенту — данные и уведомления о статусе выполнения запроса. Все сообщения, как клиента, так и сервера имеют форму строк, завершающихся специальной последовательностью.
Клиент должен завершить отправку одной команды, прежде чем отправить другую.
Протокольный приемник сервера читает строку команды, пришедшей от клиента, осуществляет её разбор, выделяет параметры и передает серверу данные. По завершении команды сервер посылает отклик.
Данные, передаваемые сервером клиенту, а также статусные отклики, которые не указывают на завершение выполнения команды, имеют префикс * и называются непомеченными откликами.
Данные могут быть отправлены сервером в ответ на команду клиента или по собственной инициативе. Формат данных не зависит от причины отправки.
Отклик указывает на удачное/неудачное выполнение операции. Он использует ту же метку, что и команда клиента, запустившая процедуру. Таким образом, если осуществляется более чем одна команда, метка сервера указывает на команду, вызвавшую данный отклик. Имеется три вида отклика завершения сервера: ok (успешное выполнение), no (неудача), bad (протокольная ошибка, например, не узнана команда или зафиксирована синтаксическая ошибка).
Клиент должен быть готов принять любой отклик сервера в любое время. Данные сервера должны быть записаны так, чтобы клиент мог их непосредственно использовать, не посылая серверу уточняющих запросов.
Состояния сервера IMAP
Сервер IMAP 4.1 находится в одном из четырёх состояний.
Большинство команд можно использовать только в определенных состояниях.
В состоянии без аутентификации клиент должен предоставить имя и пароль, прежде чем ему станет доступно большинство команд. Переход в это состояние производится при установлении соединения без предварительной аутентификации.
В состоянии аутентификации клиент идентифицирован и должен выбрать почтовый ящик, после чего ему станут доступны команды для работы с сообщениями. Переход в это состояние происходит при установлении соединение с предварительной аутентификацией, когда выданы все необходимые идентификационные данные или при ошибочном выборе почтового ящика.
В состояние выбора система попадает, когда успешно осуществлен выбор почтового ящика.
В состояние выхода система попадает при прерывании соединения в результате запроса клиента или вследствие независимого решения сервера.
POP3 и IMAP: история почтовых протоколов и сбор писем по IMAP в Яндекс.Почте
(посвящается Марку Криспину 19.07.1956 — 28.12.2012)
Некоторое время назад в Яндекс.Почте появились сборщики писем по IMAP. В этом посте мы немного расскажем о двух важных почтовых протоколах — POP3 и IMAP — и о том, как они появились и используются в современных почтовых системах. Не всегда это так просто и очевидно, как ожидаешь от технологий, развивающихся уже почти 30 лет.
Начнём наш экскурс в историю протоколов, через которые вы каждый день получаете свою сотню писем.
Когда общаешься в Сети много месяцев и лет, обрастаешь множеством писем, а это сотни мегабайт и гигабайт переписки и файлов. Часто это не просто полезные файлы, по ним можно вспомнить и восстановить вехи жизни. Эти данные бывают ценнее чем содержимое локального диска компьютера.
Иногда встаёт задача перейти на новую и более удобную почтовую систему, но мешают накопленные архивы писем. Бросить их на прежнем месте? Жалко. Пароли забываются. Бывает, утрачиваются номера мобильных и email-адреса, введённые для их восстановления. Однажды можно потерять архивы навсегда. Скачать на локальный жесткий диск? Переписать на болванку или флешку? Но они ненадёжны: ломаются, теряются, портятся.
Самое логичное решение — импортировать архив почты в новый ящик. Но недостаточно это сделать один раз, ведь в старый ящик могут продолжать приходить важные письма. Можно настроить безусловное перенаправление всей входящей почты на другой адрес, и с технической точки зрения это — самый предпочтительный вариант. Но мы не роботы, и далеко не всегда технически экономное решение удобно использовать.
Долгое время единственным способом переноса архива почты между почтовыми системами с постоянной фоновой синхронизацией новых писем был протокол POP3. Возможность собирать почту с внешних POP3-серверов реализована везде и хорошо. Во всяком случае, настолько хорошо, насколько это позволяет протокол, а он имеет массу неприятных ограничений.
POP3 ведёт свою историю с 1984 года, когда одна из сотрудниц Института Информатики в составе Университета Южной Калифорнии, Джойс Рейнольдс, опубликовала RFC 918 — предложение стандартного протокола для получения электронной почты (POP — Post Office Protocol). Через 4 года появилась третья редакция протокола POP, а текущая, современная версия стандарта на POP3 опубликована весной 1996 года, почти 17 лет назад.
Важным принципом POP3 является оптимизация под короткие подключения к почтовому серверу в условиях дорогой и медленной связи. Изначально в рамках каждого подключения предполагалось скачивание всех писем из ящика на локальный диск, а затем очистка всего содержимого ящика. Точно так же работает ваш почтовый ящик для писем и газет в подъезде многоквартирного дома. В первой версии POP даже не было команд для чтения отдельных писем, только для полной выгрузки всего.
Сейчас уже сложно представить, что электронные письма не хранили на серверах. Их перекачивали на локальный компьютер при первой возможности и читали, сортировали по адресатам, темам и важности локально.
Интересно, что в протоколе POP2 была предусмотрена возможность работы с несколькими папками на сервере, но она оказалась невостребована, да и сам протокол распространения не получил. Поэтому в POP3 команду FOLD, которая реализовала эту возможность, убрали. POP2 обогнал время.
Сейчас в POP3 нет возможности скачивать с сервера структуру папок, только «плоский» список писем, состоящий, как правило, либо из входящих писем, либо из объединения пользовательских папок. Невозможно учитывать флажки прочтённости и важности. Несмотря на эти ограничения, протокол всё ещё широко используется, в основном из-за своей простоты и очень широкой поддержки в любых устройствах.
Было много попыток улучшить POP3, но ни одна из них не достигла такого успеха, как протокол IMAP, почти параллельно разивавшийся с 1985 года. История IMAP тоже весьма интересна. Например, первая реализация была сделана на Lisp-е, и его наследие навсегда осталось в протоколе в виде S-выражений, которыми кодируются сложные ответы сервера, такие как BODYSTRUCTURE.
Автор и идеолог IMAP Марк Криспин заложил в него принцип постоянного хранения писем на почтовом сервере. IMAP оказался одним из ранних «облачных» протоколов Интернета, рассчитанных на то, что локальное хранилище на персональном компьютере ненадёжно. Кроме того, персональных компьютеров и других терминалов для работы с почтой у человека может быть несколько — базовые вещи для нас теперешних.
Последняя версия IMAP — 4rev1 — описана в документе RFC 3501, увидевшем свет в 2003 году. Несмотря на кажущийся возраст, протокол получился живым благодаря предусмотренному на ранних этапах механизму расширений. Этот механизм, конечно, тоже не без недостатков, но тем не менее, он позволил различным людям выпустить более пятидесяти публичных расширений, многие из которых были разработаны совсем недавно и нашли широкое применение.
Современная почтовая система без поддержки доступа по IMAP — нонсенс. На протяжении нескольких лет Яндекс.Почта поддерживает IMAP в качестве сервера для работы из таких популярных клиентских программ, как Outlook, Thunderbird, Apple Mail, а также многочисленных мобильных клиентов. Кстати, именно благодаря смартфонам IMAP получил вторую волну развития. Если на персональных компьютерах уже довольно давно подавляющее большинство пользователей сделали выбор в пользу веб-интерфейса к своей почте, то с мобильными устройствами ситуация совсем не такая. Быстрые и красивые IMAP-клиенты, например в iOS, заставляют пересматривать подход к IMAP как к выбору исключительно профессиональных и «продвинутых» пользователей.
Недавно в Яндекс.Почте появилась и функция IMAP-клиента — сборщика почты с внешних серверов по IMAP — в дополнение к POP3-сборщику.
Функция не требует практически никакой настройки и рассчитана на фоновую работу после первого включения. При сборе почты через IMAP из-за описанных выше особенностей работы протокола в вашем почтовом ящике вы увидите ту структуру папок, к которой привыкли, когда пользовались предыдущей почтовой системой. Все прочтённые письма останутся прочтёнными, а непрочитанные — непрочитанными.
Включить сбор с папками в Яндекс.Почте можно со всех почтовых систем, поддерживающих протокол IMAP. Протокол непростой, у каждой реализации IMAP-сервера есть свои закидоны, и нам было важно в первую очередь обработать самый массовый вариант перехода со старой почты на новую.
По-прежнему кроме самих писем импортируются контакты из адресных книг самых распространённых почтовых сервисов.
Протокол IMAP заметно сложнее чем POP3 и просто по набору возможностей и команд, и по некоторых базовым принципам функционирования. Например, в IMAP используется тегирование команд клиента и ответов сервера на эти команды, что позволяет серверу отвечать на команды в произвольном порядке.
Каждая команда должна быть предварена некоторым идентификатором — тегом, который затем будет использован сервером при генерации ответа на эту команду. Это позволяет «беседе» клиента с сервером быть абсолютно асинхронной — сервер вправе отвечать на команды клиента в любом порядке, так как теги позволяют однозначно сопоставить ответ ранее поданной команде. Более того, сервер может выполнять такие команды одновременно, ускоряя скорость работы с почтой, и Яндекс.Почта умеет это использовать. Одновременно это требует особого подхода к программированию как клиента, так и сервера. Если вам в этом месте вспомнился механизм sequence numbers в TCP, то запишите себе +1 в geek cred 🙂
Для реализации IMAP-сборщика внутри Яндекс.Почты мы использовали наш асинхронный фреймворк для написания любых высокопроизводительных сетевых сервисов, который называется yplatform. Пока его исходный код закрыт, хотя мы рассматриваем возможность опубликовать его. Следите за новостями.
Переходите на Яндекс.Почту, настраивайте сборщик по IMAP — и вы всегда сможете найти любое старое письмо. Уж что-что, а искать Яндекс умеет.
Протокол POP3 или IMAP: что лучше выбрать?
Если вам довелось заводить электронный почтовый ящик, то наверняка видели эти аббревиатуры: POP3 и IMAP. Они всплывают и при подключении уже существующих ящиков к почтовым клиентам. В этой статье расскажу, как эти названия расшифровываются и для чего эти протоколы нужны.
Что такое POP3 и IMAP?
Речь идет о протоколах передачи данных. Двух относительно популярных и используемых до сих пор. Оба выполняют простую задачу: позволяют получать и читать письма, используя один или несколько почтовых клиентов.
POP3 (или Post Office Protocol) разработали в 1984 году. Создатели протокола ориентировались на медленное и нестабильное dial-up подключение к сети тех времен. Весь процесс работы с почтой в POP3 организован так, чтобы адресант как можно менее зависел от ужасного интернета 80-х.
IMAP (или Internet Message Access Protocol) разработали спустя два года. Его создатели уже не так переживали по поводу наличия или отсутствия интернета и предполагали, что у клиента всегда есть стабильный доступ к сети. А значит всю приходящую корреспонденцию можно смело оставлять на сервере, чтобы владелец ящика мог прочитать входящие сообщения везде, где есть интернет.
Два противоположных подхода сформировали набор разных функций для каждого протокола. На тот момент каждый протокол приобрел свои плюсы и минусы. Со временем они перестали быть так заметны, как раньше, но мы все равно их обсудим.
Еще есть аббревиатура SMTP, которую часто приписывают в один ряд с IMAP, но это не совсем правильно. В отличие от IMAP и POP3 — SMTP отвечает не за прием и сортировку писем, а за их отправку. Так что любое их сравнение будет некорректным.
А что такое Exchange?
Да, напоминаю, что протоколов не два. Само по себе явление вовсе не бинарное, как и все в интернете. Есть вот Exchange.
Это технология компании Microsoft. По сути, коммерческое название для их собственного протокола передачи сообщений под названием MAPI (или Messaging Application Programming Interface). Принцип работы у этой технологии такой же, как у IMAP. С точки зрения функциональности они мало чем отличаются. Отличия внутри, и связаны они с проприетарной сущностью продукта Microsoft.
Чтобы воспользоваться Exchange-ящиком, надо иметь доступ к оплаченному серверу Exchange. Такие нередко задействуют в крупных организациях, поэтому есть шанс наткнуться на протокол MAPI при переходе в офис большой компании, где электронная почта играет важную роль для бизнеса в целом. Заводить персональный Exchange-ящик, наверное, не стоит. Лишние траты. А если все-таки хочется потратить деньги, то лучше уж на какой-нибудь Hey.
Читайте также
SMTP, POP3, IMAP, Exchange: это все?
Нет, это не все наименования, которые могут встречаться. Есть еще протоколы как для отправки писем, так и для управления ими на сервере. Вопрос лишь в целесообразности использования других технологий. Они либо вовсе не нужны, потому что устарели и больше не поддерживаются ни одним почтовым клиентом, либо настолько узкоспециализированы, что для базовой работы с почтой как-то не особо пригодны.
POP3 или IMAP: что же выбрать?
Как по мне, выбор очевиден. Мне кажется, что POP3 можно списать в утиль, так как его преимущества над IMAP не особо актуальны в нынешнем интернете. Люди несколько иначе работают с почтой, заходят в нее с нескольких разных устройств и не хранят в офлайн-виде. Поэтому IMAP — своего рода идеальный протокол для всех и каждого. С другой стороны, кто я такой, чтобы принимать решение за вас? Лучше расскажу, чем протоколы отличаются друг от друга, как работают, и на практических примерах объясню, какой из них стоит выбрать.
Как работают протоколы IMAP и POP3?
Мы уже выяснили, что разработчики обсуждаемых протоколов ставили противоположные задачи и готовились к совсем непохожим условиям работы. Это главным образом повлияло на то, как IMAP и POP3 устроены технически и как оба функционируют.
Как видите, IMAP практически ничего не загружает. Любые изменения происходят прямо на сервере. На устройство попадает только мелкий кэш и вложения. Но вложения при этом не пропадают из ящика. Вот в чем и есть главное отличие.
Но вы скажете «ОК, я теперь знаю принцип работы обоих протоколов и все такое, а что это значит на практике? Я просто хочу создать почтовый ящик с подходящим протоколом и все!»
Если интересует мое мнение, то еще раз перечитайте текст под заголовком «POP3 или IMAP: что же выбрать?». Если же нужна более объективная информация, то давайте пройдемся по плюсами и минусам каждого протокола на «живых» примерах.
Преимущества и недостатки POP3
Преимущества такие:
Недостатки:
Преимущества и недостатки IMAP
Плюсы:
Минусы:
Давай покороче, что выбрать? IMAP или POP3? Или Exchange?
Поговорим об основных отличиях. Смотрите, как обстоят дела.
Протокол/
Характеристики
IMAP
POP3
Хранение писем на устройстве
Письма хранятся на устройстве около 14 дней (только текст, без вложений)
Письма (вместе с вложениями) хранятся на устройстве
Хранение писем на сервере
Вся корреспонденция хранится на сервере
На сервере хранятся только непрочитанные письма
Параметры для почтового клиента
Идентичные настройки во всех почтовых клиентах
Отдельные параметры для каждого клиента
SSL/TLS
Тоже поддерживает SSL/TLS
Используемые порты
Характеристики Exchange совпадают с характеристиками IMAP.
А вообще, можно ответить себе на парочку вопросов.
Как много устройств я использую для работы с почтовым ящиком?
Если ответ «больше одного», то надо выбирать IMAP. В этом случае корреспонденция будет доступна на каждом устройстве, с которого вы авторизуетесь на почтовом сервисе. POP3, конечно, так не умеет.
Хочу ли я сохранить побольше свободного пространства на сервере?
Если на вашем почтовом сервере в 2020 почему-то крайне мало свободного места, то лучше использовать POP3. Как мы уже выяснили, он сохраняет письма на устройство. В таком случае нечему занимать место на сервере.
Раскладываю ли я письма по папкам?
Да? Тогда лучше IMAP. Тогда созданные папки будут храниться удаленно. Независимо от того, через какой клиент вы зайдете на почту, иерархия папок будет идентичной.
В компании, где я работаю, используется Exchange Server?
При положительном ответе вариантов попросту не остается. Придется подчиниться корпоративной политике.
После ответа на эти вопросы все должно встать на свои места, а вы наконец определитесь с выбором протокола.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
IMAP (Internet Message Access Protocol)
Международный стандарт: | Internet Message Access Protocol |
---|---|
Уровень (по модели OSI): | Прикладной |
Семейство: | стек протоколов TCP/IP |
Порт/ID: | 143/TCP, 993/TCP (IMAP over SSL) |
Назначение протокола: | Доступ к почтовым ящикам |
Спецификация: | RFC 3501 |
Основные реализации (клиенты): | MUA (Outlook Express, Opera, Mozilla Thunderbird, The Bat!, Claws Mail, mutt) |
Основные реализации (серверы): | UW IMAP, Courier, Cyrus, Dovecot |
Вступил в силу с: | 1986 |
IMAP (англ. Internet Message Access Protocol ) — протокол прикладного уровня для доступа к электронной почте. Базируется на транспортном протоколе TCP и использует порт 143. IMAP предоставляет пользователю обширные возможности для работы с почтовыми ящиками, находящимися на центральном сервере. Почтовая программа, использующая этот протокол, получает доступ к хранилищу корреспонденции на сервере так, как будто эта корреспонденция расположена на компьютере получателя. Электронными письмами можно манипулировать с компьютера пользователя (клиента) без постоянной пересылки с сервера и обратно файлов с полным содержанием писем.
Для отправки писем используется обычно протокол SMTP, так как собственная команда отправки протокола IMAP, называемая APPEND, считается «неудачной» и «небезопасной».
Содержание
Область применения
Область применения протокола IMAP аналогична области применения протокола POP3: он тоже предназначен для получения почты и используется на участке между MUA получателя и хранилищем сообщений. IMAP предоставляет более широкие возможности работы с почтовыми ящиками, чем POP3: он позволяет работать с несколькими почтовыми ящиками на одном или нескольких серверах IMAP как с файлами и каталогами на собственной машине пользователя. Обычно почтовые ящики сервера IMAP действительно представляют собой файлы в специальном каталоге сервера и его подкаталогах.
Версии IMAP
Преимущества IMAP над POP3
При использовании POP3 клиент подключается к серверу только на промежуток времени, необходимый для загрузки новых сообщений. При использовании IMAP соединение не разрывается, пока пользовательский интерфейс активен, а сообщения загружаются только по требованию клиента. Это позволяет уменьшить время отклика для пользователей, в чьих ящиках имеется много сообщений большого объёма.
Протокол POP требует, чтобы текущий клиент был единственным подключенным к ящику. IMAP позволяет одновременный доступ нескольких клиентов к ящику и предоставляет клиенту возможность отслеживать изменения, вносимые другими клиентами, подключенными одновременно с ним.
Благодаря системе флагов, определенной в IMAP4, клиент может отслеживать состояние сообщения (прочитано, отправлен ответ, удалено и т. д.); данные о флагах хранятся на сервере. Клиенты IMAP4 могут создавать, переименовывать и удалять ящики и перемещать сообщения между ящиками. Кроме того, можно использовать расширение IMAP4 Access Control List для управления правами доступа к ящикам.
Поиск сообщений происходит на стороне сервера. IMAP4 имеет явный механизм расширения.
Недостатки IMAP
Множественный доступ к почтовым ящикам связан с рядом проблем, особенно, если информация в ящиках доступна для записи.
Протокол IMAP предполагает в основном работу пользователей с почтовыми ящиками непосредственно на сервере, в отличие от протокола POP3, который ориентирован на то, что клиент забирает пришедшую почту и разбирает ее уже на своей машине. Это делает IMAP неудобным для пользователей, подключающихся к сети кратковременно, только для того, чтобы получить или отослать почту. При работе по протоколу IMAP клиенту желательно иметь доступ к сети все время, пока он работает с почтой.
Общие сведения
Состояния сервера
Сервер IMAP ожидает соединения от клиентов на порту TCP 143. После установления соединения сервер посылает свое приветствие клиенту, и начинается диалог, в котором клиент посылает серверу команды, а сервер сообщает о результатах их выполнения или присылает затребованную клиентом информацию. Как и сеанс POP3, сеанс IMAP делится на несколько состояний ( states ). Допустимый набор команд зависит от текущего состояния сеанса. Сеанс может находиться в одном из следующих состояний:
Команды протокола IMAP
Команды клиента и ответы сервера IMAP
Команда клиента состоит из идентификатора (ярлыка) – короткой строкой, состоящей из букв и цифр, не повторяющейся в других командах в течение всего сеанса. За ярлыком следует сама команда и ее аргументы. Регистр символов в названиях команд, как и в большинстве аргументов, как правило, не имеет значения.
Кроме стандартных команд, которые обязательно должны поддерживаться, имеются также дополнительные команды, описанные в стандартах и поддерживаемые серверами IMAP как элементы расширений. Разработчики также могут добавлять в своих реализациях новые команды. Названия таких нестандартизированных команд должны начинаться с буквы Х. Имена стандартных команд с буквы Х начинаться не могут.
Все ответы сервера начинаются с метки, после которой следует отделенный пробелом текст.
В ответах сервера, сообщающих об исполнении команд, в качестве метки используется ярлык соответствующей команды. Это помеченные ответы. За ним следует одно из ключевых слов:
Ответы, содержащие информацию, запрошенную клиентом или посылаемую сервером без запроса, начинаются с метки «*», такие ответы называются непомеченными. После метки следуют номер опрашиваемого сообщения и ключевое слово или только ключевое слово. Ключевых слов для непомеченных ответов предусмотрено значительно больше, чем для помеченных, обычно они соответствуют имени команды или характеру передаваемой клиенту информации.
Каждая команда должна получить один помеченный ответ сервера, свидетельствующий о возможности или невозможности исполнения команды, и, возможно, один или несколько непомеченных ответов, содержащих запрошенную или дополнительную информацию.
Клиент может послать несколько команд подряд, не дожидаясь ответа на каждую из них, если принятие решения о следующей команде не зависит от ответа на предыдущую. Сервер, получив несколько команд подряд, может выполнять их параллельно, если для успешного выполнения следующей команды не требуется выполнение предыдущей. Ответы в этом случае могут поступать в порядке, отличном от того, в каком команды посылались. Соответствие помеченных ответов посланным командам клиент определяет по ярлыкам.
Надо соблюдать осторожность и следить за тем, чтобы при одновременном выполнении команд не возникало неоднозначностей. Например, при удалении сообщения из ящика изменяется нумерация оставшихся сообщений, что может привести к неоднозначной интерпретации команды, одновременно обращающейся к другому сообщению в том же почтовом ящике.
Информация, передаваемая в команде или в непомеченном ответе, не обязательно должна укладываться в одну строку. Данные, которые передаются как продолжение команды или непомеченного ответа, называются литералом. На конце строки, которая должна быть продолжена литералом, ставится его размер в октетах, заключенный в фигурные скобки.
Сервер может передавать литерал, не дожидаясь разрешения клиента, клиент, прежде чем передавать литерал, должен дождаться разрешения – строки, начинающейся с метки «+». Например:
Команды, допустимые при любом состоянии сеанса IMAP
CAPABILITY
В ответ на эту команду сервер присылает непомеченную строку с ключевым словом CAPABILITY, содержащую список поддерживаемых возможностей (расширений) и их параметров. В число возможностей входит в частности поддерживаемая версия протокола IMAP – IMAP4rev1 и механизмы аутентификации. Возможности IMAP описываются в различных RFC или могут вводиться разработчиками. В последнем случае их названия должны начинаться с буквы Х. Названия стандартных возможностей с этой буквы начинаться не могут.
Не выполняет никаких действий. Однако эта команда сбрасывает таймер неактивности, что позволяет избежать разрыва соединения по таймауту. Кроме того, при определенных обстоятельствах эта или другая команда служит неявным запросом информации об обновлениях, произошедших на сервере. Таким образом, с помощью команды NOOP можно периодически проверять, не появились ли новые сообщения или не изменился ли статус старых. Это можно делать и с помощью других команд, но, поскольку команда NOOP не производит никаких других действий, использование ее с описанной целью предпочтительнее.
LOGOUT
Команды неаутентифицированного состояния
Клиент должен успешно аутентифицироваться, чтобы перейти в следующее состояние. Алгоритмы аутентификации для протокола IMAP не отличаются принципиально от рассматривавшихся в предыдущих главах алгоритмов аутентификации для протоколов SMTP и POP3.
Серверы IMAP могут допускать анонимный доступ к некоторым почтовым ящикам. Анонимный пользователь регистрируется под именем anonymous, в качестве пароля используется адрес электронной почты пользователя, имя его домена, произвольный набор символов или пустая строка. Анонимный доступ возможен как при передаче пароля открытым текстом, так и с использованием SASL. Возможности анонимного клиента должны быть строго ограничены, как правило, он не получает прав на изменение какой-либо информации на сервере.
STARTTLS
Перевод сеанса в защищенный режим. После получения сервером команды STARTTLS клиент и сервер согласовывают параметры дальнейшего взаимодействия. Все данные, которыми обмениваются клиент и сервер после успешного завершения этой команды, передаются в зашифрованном виде. Однако аутентификация при помощи этой команды не производится, сеанс остается в неаутентифицированном состоянии.
LOGIN
LOGIN регистрационное_имя_пользователя пароль
Аутентификация при помощи регистрационного имени и пароля, передаваемых открытым текстом.
AUTHENTICATE
Передача зашифрованных аутентификационных данных с использованием SASL.
Команды аутентифицированного состояния
В аутентифицированном состоянии клиент производит различные манипуляции с почтовыми ящиками.
SELECT
Открывает доступ к указанному почтовому ящику. Сеанс переходит в состояние выбора, после этого клиент может работать с отдельными сообщениями в ящике.
В ответ на эту команду сервер присылает ряд непомеченных ответов, содержащих информацию о почтовом ящике: количество сообщений, список допустимых флагов, количество новых сообщений, номер первого непрочитанного сообщения, идентификатор почтового ящика.
EXAMINE
CREATE
Создает новый почтовый ящик или каталог.
Если объект создается не в корневом каталоге, то надо указать путь к нему.
Если на конце указанного имени стоит символ, используемый в качестве иерархического разделителя, создается каталог.
DELETE
Удаляет указанный почтовый ящик. Эта же команда удаляет также и каталоги, если они не содержат почтовые ящики.
RENAME
RENAME имя_ящика новое_имя_ящика
Переименование почтового ящика.
SUBSCRIBE
Почтовый ящик помечается как «активный». Эта пометка используется для вывода списка почтовых ящиков при помощи команды LSUB.
UNSUBSCRIBE
Снимает с почтового ящика пометку «активный». Эта пометка может быть снята с почтового ящика только при помощи команды UNSUBSCRIBE. Даже если ящик больше не существует, это не может само по себе стать причиной снятия пометки «активный».
LIST путь_к_ящику имя_ящика
Возвращает список каталогов и почтовых ящиков, соответствующих указанным аргументам.
Если имя ящика само по себе содержит полный путь к ящику, то первый аргумент игнорируется.
В ответ сервер присылает одну или несколько непомеченных строк с ключевым словом LIST. Каждая из них содержит атрибуты, если таковые имеются, иерархический разделитель и имя почтового ящика или каталога, отвечающего заданным в аргументах условиям. Атрибуты заключаются в скобки, иерархический разделитель – в кавычки.
RFC 3501 предусматривает четыре атрибута:
В описанном в RFC 3348 расширении CHILDREN предусмотрены еще два атрибута, позволяющие определить, содержит ли каталог почтовые ящики или подкаталоги:
Если оба аргумента команды LIST пустые, то сервер возвращает только используемый по умолчанию иерархический разделитель.
LSUB путь_к_ящику имя_ящика
STATUS
STATUS имя_ящика (имена_элементов)
Возвращает запрошенные элементы информации об указанном почтовом ящике. Имена элементов информации разделяются пробелами и все вместе заключаются в скобки. Предусмотрены следующие имена элементов информации:
Добавляет сообщение в конец указанного почтового ящика. В качестве аргументов указываются имя ящика, флаги сообщения (не обязательно), метка времени (не обязательно) и само сообщение – заголовок и тело.
Имеются следующие флаги сообщений:
Если в команде указаны флаги, то они устанавливаются для добавляемого сообщения. В любом случае для сообщения устанавливается флаг \Recent.
Если в команде задана метка времени, то это время будет установлено в качестве времени создания сообщения, в противном случае за время создания принимается текущее время.
Поскольку сообщение состоит не из одной строки, используются литералы.
Команды выбранного состояния
В выбранном состоянии клиент может выполнять те же действия, что и в аутентифицированном состоянии, и производить манипуляции с сообщениями в выбранном почтовом ящике.
CHECK
Команда производит проверку выбранного почтового ящика, характер которой зависит от реализации программного обеспечения сервера.
CLOSE
Выбранный почтовый ящик закрывается. При этом, если почтовый ящик был открыт для чтения и записи, все помеченные для удаления сообщения в ящике удаляются. Сеанс возвращается в аутентифицированное состояние.
EXPUNGE
SEARCH
SEARCH кодировка_символов критерии_поиска
Поиск в выбранном почтовом ящике сообщений, отвечающих указанным критериям поиска.
Необязательный первый аргумент команды состоит из слова «CHARSET» и названия кодировки, используемой в критериях поиска. Кодировку нужно указывать, только если она отличается от стандартной US-ASCII.
Второй аргумент содержит один или более критериев поиска.
Критерий поиска состоит из ключевого слова и аргумента. Критерии также можно объединять, заключая в скобки. Это бывает удобно при использовании ключевых слов NOT и OR.
Непомеченные ответы на команду SEARCH содержат номера сообщений, отвечающих указанным критериям.
FETCH
FETCH х:у имя_элемента_сообщения_или_макрос
Сервер возвращает информацию, относящуюся к сообщениям, обозначенным первым аргументом команды. Это может быть либо число, обозначающее номер сообщения, либо интервал от номера х до номера у, записанный в формате х:у.
Во втором аргументе перечисляются запрашиваемые информационные элементы.
COPY х:у имя_ящика
Копирует сообщения с номерами от х до у из текущего почтового ящика в указанный почтовый ящик.
UID команда аргументы Команда UID принимает в качестве аргументов команды COPY, FETCH или STORE с их аргументами, но наряду с номерами сообщений в ответах указываются уникальные идентификаторы сообщений.
Также команду UID можно использовать совместно с командой SEARCH. В этом случае интерпретация аргументов команды SEARCH не изменяется, но в ответах на эту команду будут приведены уникальные идентификаторы сообщений.
Internet Message Access Protocol (imap) — протокол доступа к почте
Первая версия появилась в 1986 году, тогда протокол расшифровывался, как Interim Mail Access Protocol. Вторая версия вышла в 1988 году, название протокола было изменено на Interactive Mail Access Protocol. В 1991 году появилась третья версия, и в 1994 году четвертая версия протокола IMAP4, которую мы используем до сих пор. Спецификация чертой версии протокола IMAP была обновлена в 2003 году, после этого вышли дополнительные расширения протокола IMAP4.
Архитектура электронной почты
Протокол IMAP, также как и протокол РОР3 используется для чтения электронной почты, которая уже пришла в почтовый ящик пользователя. Для передачи почты используется протокол SMTP, а не IMAP.
Протокол IMAP
В отличие от протокола РОР3 в котором почтовые клиенты загружают все письма к себе и сразу их удаляют с сервера, в протоколе IMAP письма постоянно сохраняются на сервере. Клиенты загружают не все письма сразу а только те, которые пользователи явно запросил, кроме этого есть возможность синхронизации, при которой почтовый клиент, переписывает все письма с сервера но не удаляет их. IMAP сервер в отличие от РОР3 сервера, может выполнять с письмами вполне сложные действия, например выполнять поиск писем по заданному шаблону.
Преимущества протокола IMAP заключается в том, что с почтовым ящиком может одновременно работать несколько клиентов, и это соответствует современной модели работы с электронной почтой. У нас у всех есть несколько устройств, некоторые из них мобильные и мы хотим видеть единое состояние почтового ящика с помощью всех этих устройств.
С другой стороны, для того чтобы это обеспечить требуется протокол гораздо более сложный, чем РОР3. Повышенная сложность является существенным недостатком протокола IMAP. Другой недостаток заключается в том, что дисковая пространство на сервере, как правило ограничено, таким образом приходиться удалять письма из почтового ящика, чтобы он не переполнился.
Место в стеке TCP/IP
В стеке протоколов TCP/IP протокол IMAP находится на прикладном уровне.
IMAP использует протокол транспортного уровня TCP. Сервер IMAP работает на 143 порту.
Папки (mailbox)
В отличие от протокола РОР3, протокол IMAP позволяет использовать несколько почтовых ящиков (mailbox) или по-русски папки.
Папки хранятся на сервере, они могут быть вложены в друг друга и письма можно перемещать между разными папками.
В протоколе РОР3 создания папок и фильтрация сообщений используется локально с помощью почтовых клиентов. В IMAP есть папка специального типа INBOX, это почтовый ящик пользователя по умолчанию, именно туда записываются все входящие письма. Затем можно выполнять их сортировку с помощью почтовых клиентов, либо с помощью специальных программ.
Флаги
Другое отличие протокола IMAP от РОР3, это использование флагов. Именно благодаря флагам, протокол IMAP позволяет узнать прочитанное это сообщение или нет, а также много другой полезной информации.
Флаги в IMAP это небольшая метка (token) которая добавляется к письму. Письмо может иметь несколько меток или не иметь ни одной. Флаги в IMAP бывают двух типов: Системные и Пользовательские.
Системные флаги и их назначения заданы в стандарте IMAP и они начинаются с обратного слеша (\).
Также могут создаваться Пользовательские флаги. Они не могут начинаться с символа \.
Состояния сеанса IMAP
При работе по протоколу IMAP клиент проходит через четыре состояния.
Протокол IMAP, также как и другие почтовые протоколы работают в текстовом режиме и использует взаимодействие запрос-ответ. Однако существенным отличием является то, что IMAP позволяет выполнять одновременно несколько команд. Некоторые команды IMAP могут работать достаточно долго, например, поиск какого-то письма в большом почтовом ящике, где много писем, массовое обновление писем или другие подобные операции. Клиент может не дожидаться выполнения текущей команды, а запустить другую команду.
Для того чтобы отличать разные команды и ответы на них, в протоколе IMAP используются идентификаторы или теги команд. Это просто алфавитно-цифровая строка (А0001,А0002). Каждая команда клиента должна начинаться с тега. Сервер включает этот тег в ответ на команду, для того чтобы можно было определить к какой именно команде этот ответ относится.
Ответы IMAP
Ответ IMAP также как и других почтовых протоколов состоит из двух частей: Статус и Поясняющее сообщение.
В Статусе в ответов IMAP всего лишь три:
Пример сеанса IMAP
Команд в протоколе IMAP очень много, поэтому мы не будем перечислять их все.
Рассмотрим пример сеанса чтение писем. Подключаемся к серверу IMAP с использованием соединения TCP порт 143.
* OK Cyrus IMAP 4 server ready //сервер выдает сообщения со статусом ОК, сервер готов. Сеанс находится в состоянии preautentificated.
A0001 LOGIN username password // клиенту необходимо пройти аутентификацию, для этого используется команда LOGIN, в отличие от протокола РОР3 в команде LOGIN указываются одновременно имя пользователя и его пароль. Обратите внимание, что перед началом команды клиент указывает метку А0001
A0001 OK User logged in // в ответ сервер выдает сообщение тоже самой меткой, статус сообщения ОК команда выполнена успешна, поясняющее сообщение USER прошел аутентификацию.
Сейчас мы находимся в состоянии «аутентификация пройдена» и нам необходимо выбрать папку, с которой мы хотим работать.
A0002 LIST “” “*” // для того чтобы получить список всех папок используется команда LIST.
* LIST (\ HasChildren) “/” “INBOX” // Основная папка INBOX именно она считается основным почтовым ящиком пользователя и в нее доставляются все письма. В этой папке есть вложенные папки (\ HasChildren)
* LIST (\ HasChildren) “/” “INBOX/Drafts” // папка Draft черновики
* LIST (\ HasChildren) “/” “INBOX/Junk” // папка Junk спам
* LIST (\ HasChildren) “/” “INBOX/Sent” // папка Sent отправленные письма
* LIST (\ HasChildren) “/” “INBOX/Trash” //папка Trash корзина
A0002 OK Completed //завершается вывод ответом сервера ОК и номером метки А0002 указывающее, к какой команде относится ответ.
Выбор папки
Следующий этап сеанса IMAP это выбор папки из которой мы хотим читать письма.
A0003 SELECT INBOX //для этого используется команда SELECT, выбираем папку INBOX
* OK [UIDVALIDITY 1340776425]
* OK [UNIDNEXT 29048]
A0003 OK [READ-WRITE] Completed
Просмотр списка писем
А0004 FETCH 1: * FLAGS // для того чтобы посмотреть какие сообщения есть на сервере используется команда FETCH ей необходимо указать номер письма, с которым мы хотим работать, либо диапазон через двоеточия. Диапазон от 1:* говорит от том, что мы хотим получить информацию обо всех письмах, затем указывается именно информацию мы хотим получить.
С начала мы хотим посмотреть флаги, в ответ сервер выдает перечень писем с флагами.
* 1 FETCH (FLAGS (\Seen)) // некоторые письма мы смотрели
* 2 FETCH (FLAGS (\Seen))
* 3 FETCH (FLAGS (\Answered \Seen)) // на некоторые мы отправили ответ
* 177 FETCH (FLAGS ()) // мы к нему подключались, но мы его не посмотрели.
* 178 FETCH (FLAGS (\Recent))
* 179 FETCH (FLAGS (\Recent)) // эти 3 письма мы видим в первый раз
* 180 FETCH (FLAGS (\Recent))
A0004 OK Completed (0.00 sec)
Чтение письма и установка флагов
A0005 FETICH 180 BODY [] // для того чтобы посмотреть письмо используется команда FETCH, указываем номер письма 180 последнее письмо, которое пришло, и что именно мы хотим посмотреть тело сообщения полностью BODY []
* 180 FETICH (FLAGS (\Recent \Seen) BODY [] <7077>//Сначала показываются флаги сообщения (FLAGS (\Recent \Seen), сервер автоматический установил у сообщения флаг Seen, означает то, что оно было просмотрено
Передача тела письма // а после этого выводиться само сообщение
Мы посмотрели сообщение или передали его на клиент, предположим, что мы решили, что в сообщение нет ничего интересного и его нужно удалить.
А0005 OK Completed (0.000 sec)
A0006 STORE 180 +FLAGS \Deleted // для этого необходимо установить флаг Deleted и это делается с помощью команды STORE, нужно указать номер сообщения 180, что именно мы хотим сохранить, хотим установить флаг +FLAGS и какой именно флаг хотим установить Deleted
* 180 FETICH (FLAGS (\Recent \Deleted \Seen)) // результат выполнение команды у сообщения номер 180 установлен флаг Deleted в дополнение к двум флагам, которые уже были установлены Recent и Seen
A0006 OK Completed
Удаление писем и выход
В IMAP также как в РОР3 сообщения не удаляются сразу после того, как они были помечены на удаление.
A0007 EXPUNGE // В IMAP для этого используется специальная команда EXPUNGE. После того как это команда запущена, из папки удаляются все сообщения, которые были помечены на удаление. Если не запустить эту команду, а просто разорвать соединение, то в отличие от протокола РОР3 сообщения удалены не будут.
A0007 OK Completed
A0008 LOGOUT //для разрыва соединений используется команда LOGOUT
* BYE LOGOUT received //сервер отвечает, что полученная команда LOGOUT говорит нам пока.
A0008 OK Completed //и выдает ответ ОК команда выполнена.
После этого соединение разрывается.
Другие команды IMAP
В протоколе IMAP имеется больше количество других команд.
Команда Перемещение писем:
С помощью команды SEARCH можно искать письма на сервере по требуемую шаблону.
Команда CLOSE выполняет закрытие папки, удаление в папке всех сообщений, которые помечены на удаление и переход в состояние authenticated. В этом состоянии клиент может выбрать другую папку и продолжить работу с ней.
Эти команды, а также те же команды, которые мы перед этим рассматривали могут использовать большое количество разных аргументов, для того чтобы разобраться с ними подробно вам придется изучать документацию или стандарт протокола IMAP.
Заключение
И так мы рассмотрели протокол IMAP. Он используется для чтения писем из почтового ящика пользователя.
Все письма хранятся на сервере, и с почтовым ящиком можно одновременно работать с нескольких устройств. Все эти устройства будут видеть согласованное состояние писем на сервере. Для отслеживание статуса сообщений в IMAP используются флаги, также в IMAP для удобства организации сообщений позволяет создавать на сервере папки.
Недостатком протокола — он очень сложный, с одной стороны это обусловлено тем, что задача, которую пытались решить разработчики протокола действительно является сложной, нужно обеспечить одновременную работу с почтовым ящиком нескольких клиентов, при чем эти клиенты могут выполнять запросы одновременно. В том числе конфликтующие между собой. С другой стороны протокол разрабатывался достаточно давно в конце 90-х в начале 2000-х готов и тогда у разработчиков протоколов не было достаточно опыта.
Другой недостаток вызван тем, что все почтовые письма всех пользователей хранятся на сервере, если пользователей много, то серверу требуется большое количество дискового пространства. Однако сейчас, когда жесткие диски стали большими и относительно дешевыми, это уже не является такой большой проблемой.
ИТ База знаний
Курс по Asterisk
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Самое интересное про SMTP, POP3 и IMAP
3 минуты чтения
Сегодня мы подробно расскажем про наиболее используемые в сети интернет протоколы – POP3, IMAP и SMTP. Каждый из указанных протоколов имеет определенное назначение и функциональные возможности. Давайте попробуем разобраться.
Администрирование MS Windows Server
Стань системным администратором и научись внедрять, управлять и поддерживать инфраструктуры MS Windows Server.
Как работает электронная почта: SMTP, IMAP, POP3
Протокол POP3 и его порты
Post Office Protocol 3 (POP3) это стандартный протокол почты созданные для получения электронных писем с удаленного сервера на e-mail клиент.POP3 позволяет вам сохранить почтовое сообщение на ваш компьютер и даже прочесть его, в случае, если вы находитесь не в сети. Важно отметить, что если вы решили использовать POP3 для подключения к учетной записи почты, письма, которые уже скачаны на компьютер, будут удалены с почтового сервера. Как пример, если вы используете несколько компьютеров для подключения к одному почтовому аккаунту, то протокол POP3 может быть не лучшим выбором в данной ситуации. С другой стороны, так как почта хранится локально, на ПК конкретного пользователя, это позволяет оптимизировать дисковое пространство на стороне почтового сервера.
По умолчанию, протокол POP3 использует следующие порты:
Протокол IMAP и порты
В то время как POP3 позволяет доступ к почте только с одного приложения, IMAP позволяет доступ из множества клиентов. По этой причине, IMAP наиболее адаптивен в тех случаях, когда доступ к одному почтовому аккаунту необходим для нескольких пользователей.
По умолчанию, протокол IMAP использует следующие порты:
Протокол SMTP и его порты
Simple Mail Transfer Protocol (SMTP) – это стандартный протокол для отправки почтовых сообщений по сети интернет.
Данный протокол описан в RFC 821 и RFC 822, впервые опубликованных в августе 1982 года. В рамках данных RFC, формат адреса должен быть в формате имя_пользователя@доменное_имя. Доставка почты, аналогична работе обычной почтовой службы: например, письмо на адрес ivan_ivanov@merionet.ru, будет интерпретирован так: ivan_ivanov – адрес, а merionet.ru – почтовый индекс. Если доменное имя получателя отличается от доменного имени отправителя, то MSA (Mail Submission Agent) отправит письмо через Mail Transfer Agent (MTA). Главная идея MTA в том, чтобы перенаправлять письма в другую доменную зону, по аналогии, как традиционная почты отправляет письма в другой город или область. MTA так же получает почту от других MTA.
Протокол SMTP использует следующие порты:
Администрирование MS Windows Server
Стань системным администратором и научись внедрять, управлять и поддерживать инфраструктуры MS Windows Server.
IMAP или POP 3: что лучше
Для современного человека очень важно иметь электронную почту. Со стороны пользователя всё выглядит просто: пишешь письмо в почтовом приложении, вводишь адрес получателя и нажимаешь на кнопку «Отправить». Однако в некоторых случаях электронную почту нужно настраивать. Для этого требуются технические знания, например, что такое POP3 и IMAP. Чаще всего с этими понятиями сталкиваются те, кому нужно завести корпоративную почту. В статье мы расскажем об этих почтовых протоколах и разберёмся, какой из них лучше — протокол POP3 или IMAP.
Как работает электронная почта
В процессе передачи сообщения задействовано 6 элементов:
Чтобы получать и отправлять письма на устройство, пользователь устанавливает почтовый клиент или использует веб-интерфейс. Почтовый клиент может работать с несколькими ящиками. Веб-интерфейс подключается только к одному. Клиенты: Microsoft Outlook, Thunderbird, Mailbird, TouchMail,The Bat!. Веб-интерфейсы для почты: Gmail, Mail.ru, Яндекс.Почта.
Пользователь пишет письмо в почтовом клиенте (или веб-интерфейсе) и вводит адрес получателя. Сообщение отправляется на почтовый сервер отправителя. Почтовый сервер отправителя ищет сервер получателя и отправляет ему письмо. Потом сервер адресата отдаёт послание через веб-интерфейс или почтовый клиент на устройство получателя.
Весь процесс отправки и получения писем основан на работе протоколов SMTP и POP3/IMAP. SMTP ― протокол исходящей почты. Его задача ― отправлять письма. Он всего один, поэтому при настройке вам необязательно знать его особенности. Если вам всё-таки интересно, можете прочитать статью.
А вот понимание особенностей протоколов входящей почты POP3 и IMAP точно пригодится при настройке.
Что такое POP3 и IMAP
POP3 (Post Office Protocol) ― это первый протокол, созданный для приёма сообщений. Его разработали в 1984 году. В те времена интернет уже существовал, но о его стабильной работе речи быть не могло. Пользователь не мог постоянно проверять присланные сообщения.
При использовании этого протокола почтовый сервер получает электронное письмо и сохраняет его до того момента, пока пользователь не откроет его на своём компьютере. Затем письмо скачивается на компьютер и удаляется с сервера. Протокол POP3 работает только в одном направлении, то есть данные с локального устройства нельзя снова отправить на сервер. Если вы не сохранили копии сообщений, вернуть их туда не получится. Современные машины позволяют сохранять копии писем, чтобы можно было увидеть сообщения с другого устройства.
Протокол IMAP разработали позже, когда все пользователи смогли выходить в интернет в любой момент и с любого ПК и смартфона. При использовании протокола IMAP электронные письма всегда находятся на сервере. Почтовый сервер синхронизируется с веб-интерфейсом или локальным клиентом, который даёт возможность читать и отправлять сообщения прямо с сервера.
Если электронным ящиком пользуются несколько человек, все операции с письмами, которые были сделаны на одном устройстве (пометка «Прочтено», перемещение писем между папками, удаление и т. п.) отобразятся и на остальных.
Порты для POP3 и IMAP
При настройке почтового клиента нужно указывать порты. Выбор порта зависит от протокола, который вы хотите использовать. Можно выбрать как стандартный порт входящей почты, так и защищённый.
Преимущества и недостатки POP3
Преимущества POP3
Недостатки POP 3
Преимущества и недостатки IMAP
Преимущества IMAP
Недостатки IMAP
Какой протокол лучше использовать
Чтобы определить, какой протокол выбрать, ответьте себе на несколько вопросов:
Как много устройств я использую для получения почты? Если вы постоянно заходите на почту то со смартфона, то с компьютера, вам стоит выбрать IMAP-протокол.
Как много людей должны иметь доступ к ящику? Если у вас корпоративная почта, скорее всего, за корреспонденцией следят несколько человек с разных устройств. В этом случае тоже стоит выбрать IMAP.
Сортирую ли я письма? Если писем приходит немного и их не нужно сортировать, можно воспользоваться POP3.
Насколько высок риск поймать вирусы? Иногда по почте передают очень важные документы, которые никак нельзя потерять. Чаще всего выбирают хранение писем на сервере, так как за машиной постоянно следят специалисты и загружают только лицензионное ПО. Риски потерять данные с сервера очень малы в отличие от хранения на устройстве. Однако стоит помнить, что мошенники могут взломать и почтовый клиент. Чтобы обезопасить себя от взлома, используйте сложные пароли от почтовых клиентов и используйте сайты с SSL-сертификатом.
Как видите, более популярным протоколом является IMAP. Он удобен и у него много возможностей, поэтому в инструкциях по настройке почты и почтовых клиентов мы чаще рекомендуем именно его.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
IMAP (Internet Message Access Protocol)
Международный стандарт: | Internet Message Access Protocol |
---|---|
Уровень (по модели OSI): | Прикладной |
Семейство: | стек протоколов TCP/IP |
Порт/ID: | 143/TCP, 993/TCP (IMAP over SSL) |
Назначение протокола: | Доступ к почтовым ящикам |
Спецификация: | RFC 3501 |
Основные реализации (клиенты): | MUA (Outlook Express, Opera, Mozilla Thunderbird, The Bat!, Claws Mail, mutt) |
Основные реализации (серверы): | UW IMAP, Courier, Cyrus, Dovecot |
Вступил в силу с: | 1986 |
IMAP (англ. Internet Message Access Protocol ) — протокол прикладного уровня для доступа к электронной почте. Базируется на транспортном протоколе TCP и использует порт 143. IMAP предоставляет пользователю обширные возможности для работы с почтовыми ящиками, находящимися на центральном сервере. Почтовая программа, использующая этот протокол, получает доступ к хранилищу корреспонденции на сервере так, как будто эта корреспонденция расположена на компьютере получателя. Электронными письмами можно манипулировать с компьютера пользователя (клиента) без постоянной пересылки с сервера и обратно файлов с полным содержанием писем.
Для отправки писем используется обычно протокол SMTP, так как собственная команда отправки протокола IMAP, называемая APPEND, считается «неудачной» и «небезопасной».
Содержание
Область применения
Область применения протокола IMAP аналогична области применения протокола POP3: он тоже предназначен для получения почты и используется на участке между MUA получателя и хранилищем сообщений. IMAP предоставляет более широкие возможности работы с почтовыми ящиками, чем POP3: он позволяет работать с несколькими почтовыми ящиками на одном или нескольких серверах IMAP как с файлами и каталогами на собственной машине пользователя. Обычно почтовые ящики сервера IMAP действительно представляют собой файлы в специальном каталоге сервера и его подкаталогах.
Версии IMAP
Преимущества IMAP над POP3
При использовании POP3 клиент подключается к серверу только на промежуток времени, необходимый для загрузки новых сообщений. При использовании IMAP соединение не разрывается, пока пользовательский интерфейс активен, а сообщения загружаются только по требованию клиента. Это позволяет уменьшить время отклика для пользователей, в чьих ящиках имеется много сообщений большого объёма.
Протокол POP требует, чтобы текущий клиент был единственным подключенным к ящику. IMAP позволяет одновременный доступ нескольких клиентов к ящику и предоставляет клиенту возможность отслеживать изменения, вносимые другими клиентами, подключенными одновременно с ним.
Благодаря системе флагов, определенной в IMAP4, клиент может отслеживать состояние сообщения (прочитано, отправлен ответ, удалено и т. д.); данные о флагах хранятся на сервере. Клиенты IMAP4 могут создавать, переименовывать и удалять ящики и перемещать сообщения между ящиками. Кроме того, можно использовать расширение IMAP4 Access Control List для управления правами доступа к ящикам.
Поиск сообщений происходит на стороне сервера. IMAP4 имеет явный механизм расширения.
Недостатки IMAP
Множественный доступ к почтовым ящикам связан с рядом проблем, особенно, если информация в ящиках доступна для записи.
Протокол IMAP предполагает в основном работу пользователей с почтовыми ящиками непосредственно на сервере, в отличие от протокола POP3, который ориентирован на то, что клиент забирает пришедшую почту и разбирает ее уже на своей машине. Это делает IMAP неудобным для пользователей, подключающихся к сети кратковременно, только для того, чтобы получить или отослать почту. При работе по протоколу IMAP клиенту желательно иметь доступ к сети все время, пока он работает с почтой.
Общие сведения
Состояния сервера
Сервер IMAP ожидает соединения от клиентов на порту TCP 143. После установления соединения сервер посылает свое приветствие клиенту, и начинается диалог, в котором клиент посылает серверу команды, а сервер сообщает о результатах их выполнения или присылает затребованную клиентом информацию. Как и сеанс POP3, сеанс IMAP делится на несколько состояний ( states ). Допустимый набор команд зависит от текущего состояния сеанса. Сеанс может находиться в одном из следующих состояний:
Команды протокола IMAP
Команды клиента и ответы сервера IMAP
Команда клиента состоит из идентификатора (ярлыка) – короткой строкой, состоящей из букв и цифр, не повторяющейся в других командах в течение всего сеанса. За ярлыком следует сама команда и ее аргументы. Регистр символов в названиях команд, как и в большинстве аргументов, как правило, не имеет значения.
Кроме стандартных команд, которые обязательно должны поддерживаться, имеются также дополнительные команды, описанные в стандартах и поддерживаемые серверами IMAP как элементы расширений. Разработчики также могут добавлять в своих реализациях новые команды. Названия таких нестандартизированных команд должны начинаться с буквы Х. Имена стандартных команд с буквы Х начинаться не могут.
Все ответы сервера начинаются с метки, после которой следует отделенный пробелом текст.
В ответах сервера, сообщающих об исполнении команд, в качестве метки используется ярлык соответствующей команды. Это помеченные ответы. За ним следует одно из ключевых слов:
Ответы, содержащие информацию, запрошенную клиентом или посылаемую сервером без запроса, начинаются с метки «*», такие ответы называются непомеченными. После метки следуют номер опрашиваемого сообщения и ключевое слово или только ключевое слово. Ключевых слов для непомеченных ответов предусмотрено значительно больше, чем для помеченных, обычно они соответствуют имени команды или характеру передаваемой клиенту информации.
Каждая команда должна получить один помеченный ответ сервера, свидетельствующий о возможности или невозможности исполнения команды, и, возможно, один или несколько непомеченных ответов, содержащих запрошенную или дополнительную информацию.
Клиент может послать несколько команд подряд, не дожидаясь ответа на каждую из них, если принятие решения о следующей команде не зависит от ответа на предыдущую. Сервер, получив несколько команд подряд, может выполнять их параллельно, если для успешного выполнения следующей команды не требуется выполнение предыдущей. Ответы в этом случае могут поступать в порядке, отличном от того, в каком команды посылались. Соответствие помеченных ответов посланным командам клиент определяет по ярлыкам.
Надо соблюдать осторожность и следить за тем, чтобы при одновременном выполнении команд не возникало неоднозначностей. Например, при удалении сообщения из ящика изменяется нумерация оставшихся сообщений, что может привести к неоднозначной интерпретации команды, одновременно обращающейся к другому сообщению в том же почтовом ящике.
Информация, передаваемая в команде или в непомеченном ответе, не обязательно должна укладываться в одну строку. Данные, которые передаются как продолжение команды или непомеченного ответа, называются литералом. На конце строки, которая должна быть продолжена литералом, ставится его размер в октетах, заключенный в фигурные скобки.
Сервер может передавать литерал, не дожидаясь разрешения клиента, клиент, прежде чем передавать литерал, должен дождаться разрешения – строки, начинающейся с метки «+». Например:
Команды, допустимые при любом состоянии сеанса IMAP
CAPABILITY
В ответ на эту команду сервер присылает непомеченную строку с ключевым словом CAPABILITY, содержащую список поддерживаемых возможностей (расширений) и их параметров. В число возможностей входит в частности поддерживаемая версия протокола IMAP – IMAP4rev1 и механизмы аутентификации. Возможности IMAP описываются в различных RFC или могут вводиться разработчиками. В последнем случае их названия должны начинаться с буквы Х. Названия стандартных возможностей с этой буквы начинаться не могут.
Не выполняет никаких действий. Однако эта команда сбрасывает таймер неактивности, что позволяет избежать разрыва соединения по таймауту. Кроме того, при определенных обстоятельствах эта или другая команда служит неявным запросом информации об обновлениях, произошедших на сервере. Таким образом, с помощью команды NOOP можно периодически проверять, не появились ли новые сообщения или не изменился ли статус старых. Это можно делать и с помощью других команд, но, поскольку команда NOOP не производит никаких других действий, использование ее с описанной целью предпочтительнее.
LOGOUT
Команды неаутентифицированного состояния
Клиент должен успешно аутентифицироваться, чтобы перейти в следующее состояние. Алгоритмы аутентификации для протокола IMAP не отличаются принципиально от рассматривавшихся в предыдущих главах алгоритмов аутентификации для протоколов SMTP и POP3.
Серверы IMAP могут допускать анонимный доступ к некоторым почтовым ящикам. Анонимный пользователь регистрируется под именем anonymous, в качестве пароля используется адрес электронной почты пользователя, имя его домена, произвольный набор символов или пустая строка. Анонимный доступ возможен как при передаче пароля открытым текстом, так и с использованием SASL. Возможности анонимного клиента должны быть строго ограничены, как правило, он не получает прав на изменение какой-либо информации на сервере.
STARTTLS
Перевод сеанса в защищенный режим. После получения сервером команды STARTTLS клиент и сервер согласовывают параметры дальнейшего взаимодействия. Все данные, которыми обмениваются клиент и сервер после успешного завершения этой команды, передаются в зашифрованном виде. Однако аутентификация при помощи этой команды не производится, сеанс остается в неаутентифицированном состоянии.
LOGIN
LOGIN регистрационное_имя_пользователя пароль
Аутентификация при помощи регистрационного имени и пароля, передаваемых открытым текстом.
AUTHENTICATE
Передача зашифрованных аутентификационных данных с использованием SASL.
Команды аутентифицированного состояния
В аутентифицированном состоянии клиент производит различные манипуляции с почтовыми ящиками.
SELECT
Открывает доступ к указанному почтовому ящику. Сеанс переходит в состояние выбора, после этого клиент может работать с отдельными сообщениями в ящике.
В ответ на эту команду сервер присылает ряд непомеченных ответов, содержащих информацию о почтовом ящике: количество сообщений, список допустимых флагов, количество новых сообщений, номер первого непрочитанного сообщения, идентификатор почтового ящика.
EXAMINE
CREATE
Создает новый почтовый ящик или каталог.
Если объект создается не в корневом каталоге, то надо указать путь к нему.
Если на конце указанного имени стоит символ, используемый в качестве иерархического разделителя, создается каталог.
DELETE
Удаляет указанный почтовый ящик. Эта же команда удаляет также и каталоги, если они не содержат почтовые ящики.
RENAME
RENAME имя_ящика новое_имя_ящика
Переименование почтового ящика.
SUBSCRIBE
Почтовый ящик помечается как «активный». Эта пометка используется для вывода списка почтовых ящиков при помощи команды LSUB.
UNSUBSCRIBE
Снимает с почтового ящика пометку «активный». Эта пометка может быть снята с почтового ящика только при помощи команды UNSUBSCRIBE. Даже если ящик больше не существует, это не может само по себе стать причиной снятия пометки «активный».
LIST путь_к_ящику имя_ящика
Возвращает список каталогов и почтовых ящиков, соответствующих указанным аргументам.
Если имя ящика само по себе содержит полный путь к ящику, то первый аргумент игнорируется.
В ответ сервер присылает одну или несколько непомеченных строк с ключевым словом LIST. Каждая из них содержит атрибуты, если таковые имеются, иерархический разделитель и имя почтового ящика или каталога, отвечающего заданным в аргументах условиям. Атрибуты заключаются в скобки, иерархический разделитель – в кавычки.
RFC 3501 предусматривает четыре атрибута:
В описанном в RFC 3348 расширении CHILDREN предусмотрены еще два атрибута, позволяющие определить, содержит ли каталог почтовые ящики или подкаталоги:
Если оба аргумента команды LIST пустые, то сервер возвращает только используемый по умолчанию иерархический разделитель.
LSUB путь_к_ящику имя_ящика
STATUS
STATUS имя_ящика (имена_элементов)
Возвращает запрошенные элементы информации об указанном почтовом ящике. Имена элементов информации разделяются пробелами и все вместе заключаются в скобки. Предусмотрены следующие имена элементов информации:
Добавляет сообщение в конец указанного почтового ящика. В качестве аргументов указываются имя ящика, флаги сообщения (не обязательно), метка времени (не обязательно) и само сообщение – заголовок и тело.
Имеются следующие флаги сообщений:
Если в команде указаны флаги, то они устанавливаются для добавляемого сообщения. В любом случае для сообщения устанавливается флаг \Recent.
Если в команде задана метка времени, то это время будет установлено в качестве времени создания сообщения, в противном случае за время создания принимается текущее время.
Поскольку сообщение состоит не из одной строки, используются литералы.
Команды выбранного состояния
В выбранном состоянии клиент может выполнять те же действия, что и в аутентифицированном состоянии, и производить манипуляции с сообщениями в выбранном почтовом ящике.
CHECK
Команда производит проверку выбранного почтового ящика, характер которой зависит от реализации программного обеспечения сервера.
CLOSE
Выбранный почтовый ящик закрывается. При этом, если почтовый ящик был открыт для чтения и записи, все помеченные для удаления сообщения в ящике удаляются. Сеанс возвращается в аутентифицированное состояние.
EXPUNGE
SEARCH
SEARCH кодировка_символов критерии_поиска
Поиск в выбранном почтовом ящике сообщений, отвечающих указанным критериям поиска.
Необязательный первый аргумент команды состоит из слова «CHARSET» и названия кодировки, используемой в критериях поиска. Кодировку нужно указывать, только если она отличается от стандартной US-ASCII.
Второй аргумент содержит один или более критериев поиска.
Критерий поиска состоит из ключевого слова и аргумента. Критерии также можно объединять, заключая в скобки. Это бывает удобно при использовании ключевых слов NOT и OR.
Непомеченные ответы на команду SEARCH содержат номера сообщений, отвечающих указанным критериям.
FETCH
FETCH х:у имя_элемента_сообщения_или_макрос
Сервер возвращает информацию, относящуюся к сообщениям, обозначенным первым аргументом команды. Это может быть либо число, обозначающее номер сообщения, либо интервал от номера х до номера у, записанный в формате х:у.
Во втором аргументе перечисляются запрашиваемые информационные элементы.
COPY х:у имя_ящика
Копирует сообщения с номерами от х до у из текущего почтового ящика в указанный почтовый ящик.
UID команда аргументы Команда UID принимает в качестве аргументов команды COPY, FETCH или STORE с их аргументами, но наряду с номерами сообщений в ответах указываются уникальные идентификаторы сообщений.
Также команду UID можно использовать совместно с командой SEARCH. В этом случае интерпретация аргументов команды SEARCH не изменяется, но в ответах на эту команду будут приведены уникальные идентификаторы сообщений.
IMAP или POP3? Чем отличаются протоколы, их плюсы и минусы
Типы протоколов почты в почтовых аккаунтах — IMAP и POP3
Постоянно проверять электронную почту через браузер неудобно, поэтому пользователи, которые ежедневно сталкиваются в необходимостью проверять почту и отвечать на письма используют почтовые клиенты.
Если Вы обращаетесь в техническую поддержку с проблемами, касающимися электронной почты, то один из первых вопросов будет — каким образом выполняется доступ к почтовому ящику.
Если Вы используете почтовый клиент наподобие Outlook, Outlook Express, Thunderbird, Mac OS X Mail или другое современное email приложение, то второй вопрос будет — какой из протоколов (POP3 или IMAP) используется при получении электронной почты.
У каждого из этих протоколов присутствуют собственные плюсы и минусы, и зная о них Вы сможете решить какой из протоколов лучше использовать в Вашем случае.
Почтовый протокол IMAP (Internet Message Access Protocol)
Благодаря повсеместному росту точек доступа в интернет, процент пользователей, использующих IMAP постоянно растет.
Причины выбать IMAP — преимущества
Недостатки IMAP
Большинство современных webmail интерфейсов используют IMAP для отображения email аккаунтов.
Почтовый протокол POP3 (Post Office Protocol, version 3)
В отличие от IMAP, который разрешает работать с почтой исключительно на сервере, используя протокол POP3, Вы имеете возможность загружать письма на жесткий диск компьютера и работать с ними уже там. Некоторые провайдеры предоставляют доступ к почте только на основании протокола POP3, игнорируя IMAP соединения.
Чем хорош POP3 — преимущества
Недостатки POP3
Протокол POP3 остается по прежнему востребованным протоколом для электронной почты из-за легкости использования базовой конфигурации и надежности. Чем сложнее протокол или приложение, тем вероятнее возникновение трудноразрешимых ситуаций, требующих вмешательства технической поддержки.
Сделайте выбор
Когда Вы решаете, какой email протокол Вам подходит, Вам полагается исходить из собственных нужд и целей использования email аккаунта.
Аргументы в пользу IMAP:
Аргументы в пользу POP3:
Это далеко не полный перечень примеров, когда и какой протокол выбирать. В случае, если у Вас возникли вопросы и Вы хотите узнать наше мнение применительно к Вашей ситуации, то Вы можете задать вопрос в комментариях.
Разница между POP3 и IMAP email аккаунтами
IMAP и POP3 – инструменты, используемые Вашим компьютером для получения доступа к электронным сообщениям, размещенным на удаленном сервере.
Почтовые аккаунты всех видов нашего хостинга совместимы и с IMAP и c POP3.
Нашим клиентам мы рекомендуем использовать IMAP вместо POP3. Причины изложены ниже.
Почему стоит выбрать IMAP для своей учетной записи?
IMAP (Internet Message Access Protocol) — усовершенствованный протокол, служащий, для того, чтобы получать электронную почту. Это способ доступа к email сообщениям, которые хранятся на почтовом сервере.
Главное преимущество IMAP над POP3 — возможность сохранять исходные email сообщения, размещенные на mail сервере и выполнять подключение к одному и тому же аккаунту из нескольких мест.
Если в случае с POP3 почта загружается на компьютер или иное устройство и удаляется с mail сервера, IMAP же загружает копию электронной почты. Это гораздо результативней, поскольку email аккаунт настраивается для нескольких компьютеров и устройств, использующих IMAP, а исходные электронные сообщения останутся на mail сервере.
В случае, когда мобильный телефон или персональный компьютер — главный инструмент проверки почты и неисправностей почтового клиента, оказался утерян, украден или перестал функционировать, то электронные письма никуда не исчезнут.
POP3 – главный недостаток
POP3 сокращенно от Post Office Protocol version 3. Когда на Ваш адрес отправляют письмо, то оно сохраняется на mail сервере, пока не загрузится через почтовый клиент (Outlook, Netscape mail, Ваш мобильный телефон и другие), использующий POP3. После загрузки письма почтовым клиентом, оно удаляется окончательно с сервера.
Проще говоря, это означает, что если на мобильном телефоне настроили email аккаунт под протокол POP3, то телефон загрузит письма и удалит их сервера. Если же настроить тот же email аккаунт в почтовом интерфейсе или на компьютере, то почта не отобразится, поскольку ее уже загрузили на мобильный телефон.
iPipe – надёжный хостинг-провайдер с опытом работы более 15 лет.
Что это такое? Спам – в большинстве случаев это рассылка электронной почты по базе пользователей, которые не давали на неё…
Первый стандарт РОРЗ определен в RFC 1225 (Post Office Protocol-Version 3, J. Myers, M. Rose November 1994).
Последняя версия RFC1939 (J. Myers, M. Rose May 1996 )
Пользователь может получить доступ к РОР-серверу из любой точки доступа к Интернет.
9.1.1 Модель протокола POP3
Модель протокола POP
9.1.2 Принцип работы POP
В протоколе РОРЗ оговорены три стадии процесса получения почты:
обновление (завершение транзакции)
После того как сервер и клиент РОРЗ установили соединение, начинается стадия авторизации. На стадии авторизации клиент идентифицирует себя для сервера. Если авторизация прошла успешно, сервер открывает почтовый ящик клиента и начинается стадия транзакции. В ней клиент либо запрашивает у сервера информацию (например, список почтовых сообщений), либо просит его совершить определенное действие (например, выдать почтовое сообщение). Наконец, на стадии обновления сеанс связи заканчивается.
Ответ сервера может иметь два значения:
Если сервер содержит несколько строк, то последняя строка должна содержать «точку».
9.1.2.1 Авторизация пользователя
C: USER Pety // Пользователь сообщает свое имя, оно является идентификатором почтового ящика
S: +ОК // Сервер сообщает, что все в порядке
C: PASS Petypasw // Пользователь сообщает свой пароль
S: +ОК Pety’s maildrop has 2 messages (320 octets) // Сервер сообщает, в почтовом ящике Pety есть 2 сообщения
Пример неудачной авторизации:
Пример авторизации с цифровой подписью:
C: APOP Pety K3u7yG4TfR7gE55DD4ry6G4F // Имя и шифрованный пароль
S: +ОК Pety’s maildrop has 2 messages (320 octets)
9.1.2.2 Транзакции РОРЗ
После того как стадия авторизации окончена, обмен переходит на стадию транзакции. В следующих примерах демонстрируется возможный обмен сообщениями на этой стадии.
Команда STAT (просмотр ящика) возвращает количество сообщений и общее количество байтов в сообщениях:
C: STAT
S: +ОК 2 320 // 2 сообщения, общий размер 320 байт
Команда LIST (без параметра) возвращает список сообщений в почтовом ящике и их размеры:
Команда LIST с параметром (номер сообщения) возвращает информацию о заданном сообщении:
Команда TOP возвращает заголовок, пустую строку и первые n строк тела сообщения:
Команда RETR извлекает сообщение с указанным номером и помещает его в буфер местного UA:
Команда DELE отмечает сообщение, которое нужно удалить:
Команда RSET снимает метки удаления со всех отмеченных ранее сообщений:
C: RSET
S: +OK maildrop has 2 messages (320 octets) // в почтовом ящике 2 сообщения были на удаление
C: QUIT
S: +OK dewey POP3 server signing off
C: QUIT
S: +OK dewey POP3 server signing off (maildrop empty)
C: QUIT
S: +OK dewey POP3 server signing off (2 messages left)
Обратите внимание на то, что отмеченные для удаления сообщения на самом деле не удаляются до тех пор, пока не выдана команда QUIT и не началась стадия обновления. В любой момент в течение сеанса клиент имеет возможность выдать команду RSET, и все отмеченные для удаления сообщения будут восстановлены.
9.1.2.3 Обновление (UPDATE)
Происходит завершение транзакции. И удаление все помеченных сообщений.
9.1.4 Просмотр сообщений на POP3 сервере с помощью Telnet
Получим письмо через Telnet.
Клиенту необходимо ввести следующие строки:
Подключение и получение письма telnet’ом (UNIX) с сервера POP (Дионис)
Протокол IMAP4 (Internet Message Access Protocol) позволяет клиентам получать доступ и манипулировать сообщениями электронной почты на сервере. Был разработан для замены POP3.
В отличии от POP3 позволяет клиенту манипулировать сообщениями на сервере.
IMAP, как стандарт, пока не принят, он остается «предложенным стандартом».
Каждая команда клиента начинается с идентификатора или тега команды, состоящую из букв и цифр, (например, А0001,А0002 и т. д.). Тег является уникальным идентификатором данной команды клиента. Ответы сервера или следующие команды клиента могут ссылаться на данную команду по ее тегу.
Строки данных, передаваемые с сервера в ответ на команду клиента, могут не содержать тег, а содержать символ «*». Это означает, что они являются промежуточными строками потока данных ответа, а идентификатор их команды содержится в последней строке потока.
Взаимодействие клиента сервером не строится по принципу «запрос-ответ«. Клиент может отправить новую команду на сервера не дожидаясь ответа на предыдущую.
Аргументом команды является строка с идентификатором (именем) и паролем клиента:
S: * OK IMAP4 revl Service Ready
С: a001 login Vasy pasword // посылка имени и пароля
S: a001OK LOGIN completed // идентификация прошла успешно
Команда LOGIN передает пароль и идентификатор пользователя по сети в открытом виде. Если пользователю необходима защита информации своей почты, он может пользоваться командой AUTHENTICATE. Например, при использовании механизма шифрования KERBEROS, аутентификация выглядит следующим образом:
S: * OK KerberosV4 IMAP4revl Server
С: А001 AUTHENTICATE KERBEROS_V4
S: + AmFYig==
C: BAcAQrJ5EUkVXLkNNVS5FRFUAOCAsho84kLN3/IJmrMG+25a4DT
+nZIiriJjnTNHJUtxAA+oOKPKfHEcAFs9a3CL50ebe/ydHJUwYFd
WwuQlMWiy6IesKvjL5rL9WjXUb9MwT9bpObYLGOKilQh
S: + or//EoAADZI=
C: DiAF5MgA+oOIALuBkAAmw==
S: A001 OK Kerberos V4 authentication successful
После регистрации в системе клиент должен выбрать каталог (папку) сообщений, с которым он будет работать. Выбор каталога осуществляется командой SELECT. Аргументом команды является имя почтового каталога:
Если пользователю необходимо получить информацию о состоянии какого-либо каталога, достаточно воспользоваться командой EXAMINE с именем каталога в качестве аргумента команды, например:
С: А932 EXAMINE bloop
S: * 17 EXISTS
.
Команда EXAMINE возвращает те же параметры, что и команда SELECT, а отличается от команды SELECT только тем, что открывает заданный почтовый ящик исключительно на чтение.
Если необходимо запросить статус какой-либо папки, не меняя текущий каталог, можно воспользоваться командой STATUS. В качестве параметров данной команде придаются: имя папки и тип запрашиваемой информации. В зависимости от указанного типа, команда может возвращать: количество сообщений в папке, количество новых сообщении количество непрочитанных сообщений, UIDVALIDITY каталога, UID следующего сообщения, которое будет добавлено в данную папку, например:
С: A042 STATUS blob (MESSAGES UNSEEN)
S: * STATUS blob (MESSAGES 231 UNSEEN 12)
S: A042 OK STATUS completed
С: А004 LIST «/» *
S: * LIST (\Noinferiors ) «/» INBOX
S: * LIST
Ответ сервера содержит список папок в соответствии с их положением в иерархии и флаги данных папок (флаг «\Noinferiors» означает, что внутри данной папки нет, и не может быть построена иерархия).
После получения информации на каталог, пользователь может прочитать любое сообщение или определенную группу сообщении, часть сообщения или определенные атрибуты сообщения. Для этого используется команда FETCH. Аргументами данной команды являются порядковый номер сообщения и критерии запроса. Критерии содержат описание вида возвращаемой информации. Например, можно запросить части заголовков или UID-сообщений в папке, или сообщения, имеющие или не имеющие определенные флаги. Так запрос заголовков сообщений, находящихся в INBOX с порядковыми номерами от 10 до 12, будет выглядеть так:
После просмотра сообщения, пользователь может сохранить его с другими флагами, добавить или удалить флаги сообщения ( пометить данное сообщение на удаление). Для этого используется команда STORE. Аргументами команды являются: номера сообщений, идентификатор операции и перечень флагов. Например, операция добавления флага удаления («\Dеleted») трем сообщениям выглядит следующим образом:
С: АОО3 SТОRЕ 2:4 +FLAGS (\DELETED)
S: * 2 FETCH FLAGS (\Deleted \ Seen)
S: * 3 FETCH FLAGS (\Deleted )
S: * 4 FETCH FLAGS (\Deleted \Flagged \Seen)
S: A003 OK STORE completed
Ответом на выполнение команды будут переданы строки новых флагов указанных сообщений.
Пользователь также может организовать поиск сообщений по определенным критериям. Для этого используется команда SEARCH. Например, поиск всех непрочитанных сообщений, поступивших от «smith» с 1-03-96 будет выглядеть так:
C: A282 SEARCH UNSEEN FROM ‘Smith» SINCE 1-Mar-1996
S: * SEARCH 2 84 882
S: A282 OK SEARCH completed
Результатом поиска будут сообщения с последовательными номерами 2, 84 и 882.
IMAP4 позволяет не только искать и читать сообщения в каталогах, этот протокол позволяет добавлять, копировать и перемещать сообщения в каталоги. Добавление сообщения в папку можно осуществить командой APPEND:
Команда COPY копирует сообщения с заданными порядковыми номерами в указанный каталог, например:
C: A003 COPY 2:4 MEETENG
S: A003 OK COPY completed
9.2.4 Пример работы IMAP4
9.2.5 Просмотр сообщений на IMAP4 сервере с помощью Telnet
Получим письмо через Telnet.
Клиенту необходимо ввести следующие строки:
a001 login bogomolov ***********
a002 select inbox
a004 fetch 1 rfc822.header
Подключение и получение заголовка письма telnet’ом (UNIX) с сервера IMAP4 (Дионис)
Использование протокола IMAP
Оглавление
О протоколе IMAP
IMAP означает Протокол Доступа к Сообщениям Интернет. Он дает возможность почтовому клиенту (например, Thunderbird) получить доступ к сообщениям, хранящимся на почтовом сервере. Это более современный и полнофункциональный протокол, чем POP (Почтовый Протокол), который является другим основным протоколом для доступа к сообщениям электронной почты. Большинство провайдеров электронной почты теперь поддерживают IMAP. Чтобы увидеть, использует ли ваша учетная запись протокол IMAP или POP, проверьте страницу Параметры сервера в Параметрах учетной записи:
Преимущества IMAP
Протокол IMAP поддерживает как онлайн, так и оффлайн режимы работы. Таким образом, сообщения могут быть сохранены как на локальной машине, так и на сервере, что дает многочисленные преимущества:
Для того чтобы обеспечить такую гибкость и функциональность, сообщения должны быть синхронизированы между локальной машиной и сервером электронной почты.
Синхронизация
Чтобы понять, что такое синхронизация сообщений, надо рассмотреть следующие сценарии:
Всякий раз, когда запускается Thunderbird, он проверяет состояние синхронизации между репозиторием сообщений Thunderbird и почтовым сервером, а затем выполняет любые действия, которые необходимы (например, загрузку новых сообщений с сервера, удаление любых сообщений с сервера, которые были удалены локально и т.д.). Thunderbird постоянно синхронизируется с почтовым сервером, пока он работает и имеет доступ к Интернету. Если доступ в Интернет пропал, Thunderbird будет синхронизироваться после восстановления доступа.
Синхронизация влияет на производительность и использование дискового пространства.
Производительность и поиск
Сообщения, которые хранятся локально, загружаются быстрее, чем сообщения, хранящиеся на почтовом сервере. Когда сообщения хранятся на почтовом сервере, тело сообщения не загружается, пока оно не вызывается (например, щелчком по сообщению в списке сообщений Thunderbird). Перед тем, как Thunderbird сможет отобразить текст сообщения, он должен загрузить его с сервера электронной почты.
Когда Thunderbird должен загрузить много сообщений с сервера электронной почты, это может привести к временному снижению производительности. Частично это обусловлено самим процессом загрузки, но также вызвано и процессом индексации (при этом текст сообщений анализируется и индексируется, что дает возможность быстрого и мощного поиска сообщений). После того, как загрузка и индексация завершится, производительность восстанавливается до нормального уровня. Статус синхронизации отображается в левом нижнем углу Thunderbird.
Полнотекстовый поиск в телах сообщений в Thunderbird доступен только для сообщений, которые были синхронизированы (то есть, загружены). Для не-синхронизированных сообщений доступен поиск только по заголовкам сообщений.
Использование дискового пространства
Если у вас имеется много сообщений электронной почты и ограничено место на локальном диске, вы можете не захотеть синхронизировать все ваши сообщения. Как отмечалось выше, заголовки сообщений всё ещё будут доступны для просмотра в Thunderbird на локальной машине. Тем не менее, тело сообщения будет загружено только «по требованию» и не будет доступно в автономном режиме.
Чтобы вручную настроить свойства синхронизации, откройте Синхронизация и хранение в диалоге Параметры учетной записи ( Инструменты Правка > Параметры учётной записи ).
Настройка синхронизации и использования дискового пространства
Откройте Синхронизация и хранение в диалоге Параметры учетной записи ( Инструменты Правка > Параметры учётной записи )
В верхней части страницы поставьте галочку Хранить сообщения для этой учетной записи на этом компьютере, если вы хотите синхронизировать сообщения между локальной системой и почтовым сервером.
Если эта опция не установлена, вы можете указать отдельные папки для синхронизации. Щёлкните по кнопке Дополнительно. :
Папки, которые отмечены, будут синхронизированы. Вложенные папки не будут автоматически синхронизированы просто потому, что отмечена родительская папка. Вместо этого, вы должны отметить каждую папку по отдельности.
Общие настройки дискового пространства настраиваются в нижней части страницы Синхронизация и хранение. Вы можете установить общие параметры и тип синхронизации (например, синхронизировать последние сообщения или сообщения меньше определенного размера). Эта часть страницы также имеет опции для пакетного удаления сообщений (которые, конечно, должны быть использованы с осторожностью).
Эти прекрасные люди помогли написать эту статью:
Станьте волонтёром
Растите и делитесь опытом с другими. Отвечайте на вопросы и улучшайте нашу базу знаний.