]’. 5 * OK shadrach.smallorg.org IMAP4revl V12.250 server ready 6 a001 LOGOUT 7 * BYE shadrach.smallorg.org IMAP4rev1 server terminating connection 8 a001 OK LOGOUT completed 9 Connection closed by foreign host. 10 [jessica@snadrach jessica]$

В строке 1 показана команда на открытие сеанса с помощью telnet с портом 143 (порт IMAP по умолчанию). Строка 5 отображает приглашение, выданное сервером IMAP. В строке 6 клиентом задана команда закончить сеанс с сервером. Затем сервер посылает сообщение об окончании сеанса (строка 7) и закрывает соединение с клиентом.

Каждая команда, выдаваемая клиентом, предваряется уникальным идентификатором. Сервер может затем использовать этот идентификатор в своих ответах, что позволяет клиенту определить, к какой команде относится ответ сервера. Это особенно важно при выполнении сервером нескольких команд за сеанс. Идентификатор обычно представляет собой короткую строку алфавитно-цифровых символов, которая генерируется клиентом. Так, в строке 6 листинга 7.

1 клиентом был выбран идентификатор a001. Если бы клиенту потребовалось задавать и другие команды, то следующим идентификатором был бы a002 и т.д. Часто для упрощения идентификаторы команд в течение сеанса IMAP просто последовательно увеличивают один из своих разрядов.

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

Содержание

Методы проверки подлинности пользователя в IMAP

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

Команда LOGIN

Команда LOGIN позволяет клиенту при регистрации на сервере IMAP использовать идентификатор пользователя и пароль в обычном текстовом виде.

Команда AUTHENTICATE

С помощью команды AUTHENTICATE клиент может использовать при регистрации на сервере IMAP альтернативные методы проверки подлинности. Индивидуальная проверка подлинности пользователей не является обязательной и поддерживается не всеми серверами IMAP. К тому же реализации такой проверки могут различаться в зависимости от сервера. Когда клиент выдает команду AUTHENTICATE, сервер отвечает на нее строкой вызова в кодировке base64. Далее в обязанности клиента входит ответ на вызов сервера о проверке подлинности, также закодированный base64.

]’. 5 * OK localhost IMAP4rev1 v12.250 server ready 6 a1 AUTHENTICATE KERBEROS_V4 7 a1 NO AUTHENTICATE KERBEROS_V4 failed 8 a2 AUTHENTICATE GSSAPI 9 a2 NO AUTHENTICATE GSSAPI failed 10 a3 AUTHENTICATE LOGIN 11 + VXNlciBOYU1lAA== 12 * 13 a3 NO AUTHENTICATE LOGIN failed 14 a4 LOGIN riley firetruck 15 a4 OK LOGIN completed 16 a5 LOGOUT 17 * BYE shadrach.smallorg.org IMAP4rev1 server terminating connection 18 a5 OK LOGOUT completed 19 connection closed by foreign host. 20 [riley@shadrach riley]$

В строках 6–9 показаны попытки клиента согласовать с сервером IMAP метод проверки подлинности. Как видите, все они не увенчались успехом. А в строке 10 показано, что метод проверки, приемлемый и для клиента, и для сервера, найден. Отвечая, сервер в строке 11 выдает кодированную строку с вызовом в кодировке base64. Однако в строке 12 клиент отвергает попытку регистрации и возобновляет ее лишь в строке 14 с помощью команды LOGIN.

Клиентская часть протокола IMAP

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

Почтовый ящик для клиента по умолчанию носит название INBOX. Все новые сообщения ложатся именно в INBOX. Клиент имеет возможность создавать новые почтовые ящики (иногда называемые в программах-клиентах для работы с электронной почтой папками). Туда с целью упорядочения он может перемещать сообщения из папки INBOX.

Каждому сообщению назначается уникальный идентификатор (UID), по которому они идентифицируются в почтовом ящике. Метка UID сохраняется в течение всех сеансов IMAP для того, чтобы клиентское программное обеспечение могло правильно идентифицировать сообщения в почтовом ящике. Каждому почтовому ящику соответствует уникальный идентификатор достоверности (UIDVALIDITY).

Метка UIDVALIDITY должна присутствовать во время всех сеансов IMAP, только в том случае, если идентификаторы сообщений в ящике оставались неизменными. Если в почтовом ящике имеются сообщения с различными идентификаторами, то значение UIDVALIDITY при следующем сеансе должно увеличиться. Это позволяет клиентам быстро определять, появились ли в почтовом ящике новые сообщения с момента последнего к нему обращения.

Каждое сообщение снабжается флагом, который отображает его статус. Флаг может быть постоянным или задаваться на время сеанса. Постоянные флаги могут изменяться клиентом и сохраняться вне зависимости от сеансов. Флаги, назначаемые на время сеанса, действительны только на время текущего сеанса IMAP. В табл. 7.1 представлены варианты флагов почтовых сообщений.

Флаги почтового сообщения IMAP

Флаг	Описание
\Seen	Сообщение прочитано
\Answered	На сообщение послан ответ
\Flagged	Сообщение принудительно отмечено
\Deleted	Сообщение удалено
\Draft	Сообщение не окончено (черновик)
\Recent	Новое сообщение в почтовом ящике

Почтовому сообщению может соответствовать 0 флагов или несколько флагов.

Информация о флагах передается клиенту вместе с самим сообщением. В обязанности клиента входит интерпретация флагов соответствующим образом.

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

Хотя, согласно RFC, команды IMAP набираются заглавными буквами, большинство серверов IMAP воспринимает команды, заданные как заглавными, так и прописными буквами.

Сервер должен отвечать соответствующим образом на заданные команды или отвечать отрицательно, если команда задана неправильно либо не поддерживается.

Команда SELECT

Команда SELECT используется, лишь когда почтовый ящик активен. По умолчанию, пока клиент не зарегистрирован в системе, ни один из принадлежащих ему почтовых ящиков не является выбранным. Далее клиент должен выбрать почтовый ящик, с которым он собирается работать. Обычно первый ящик, который выбирается клиентом, — это ящик INBOX, куда помещаются новые сообщения. Формат команды SELECT следующий:

SELECT mailbox

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

Команда CREATE

Команда CREATE используется для создания нового почтового ящика на сервере IMAP. Имя и местоположение новых почтовых ящиков определяются в соответствии с общими спецификациями ОС Linux. В рабочем каталоге пользователя создается новый почтовый ящик с именем, но без задания местоположения, так как оно известно каталогу $HOME клиента. Например, если рабочий каталог клиента находится в /home/riley и клиент задает команду CREATE для создания нового почтового ящика stuff/junk, то вновь созданный ящик на почтовом сервере под управлением ОС Linux будет иметь путь /home/riley/stuff/junk. В этом примере вы видите, как используется знак разделителя /. Однако это не является общим для всех серверов IMAP.

Некоторые программы IMAP-клиенты используют термин папка по отношению к новым почтовым ящикам. Многие из них позволяют пользователям также создавать их с определенным уровнем вложенности, так что будьте осторожны при создании новых папок (почтовых ящиков). С ростом длины пути к почтовому ящику становится все трудней обслуживать его.

Команда DELETE

Команда DELETE применяется к почтовым ящикам, а не к сообщениям. Сервер IMAP при получении этой команды попытается удалить почтовый ящик с именем, указанным в качестве аргумента команды. В аргументе команды можно использовать стандартное описание путей ОС Linux, со знаком разделителя /, если только они не находятся в каталоге $HOME. Сообщения из удаленных почтовых ящиков восстановлению не подлежат и теряются вместе с ящиками.

Команда RENAME

С помощью команды RENAME клиент может изменить имя почтового ящика. При этом возможно применение двух параметров. Первый параметр — собственно имя почтового ящика, который требуется переименовать. И второй параметр — новое имя почтового ящика.

Переименование не влияет на содержимое почтового ящика.

Команда LIST

Команда LIST используется для получения списка всех почтовых ящиков клиента. С ней используются два параметра. Формат команды LIST приведен ниже:

LIST reference mailbox

Здесь reference — каталог, где находятся почтовые ящики. Если задается пустая строка вместо этого параметра («»), то почтовые ящики находятся в рабочем каталоге пользователя $HOME. Второй параметр mailbox является именем почтового ящика, который нужно просмотреть. Здесь допускается использование специальных символов, так же, как и при получении обычного списка каталогов, например группового символа (*). Если именем почтового ящика задана пустая строка («»), то сервер будет возвращать в качестве ответа иерархический разделитель (для Linux /) и имя корневого параметра.

Команда LSUB

Команда LSUB используется для устранения проблемы, которая описана для команды LIST. В отличие от команды LIST, с помощью которой отображается все содержимое рабочего каталога пользователя, с помощью команды LSUB отображаются лишь активизированные ранее описанной командой SUBSCRIBE почтовые ящики клиента. Параметры команды LSUB точно такие же, что и для команды LIST, т.е. ссылка (reference) и имя почтового ящика. Подобно команде LIST, параметр ссылки указывает путь к каталогу, в котором находятся почтовые ящики с соответствующими именами (каталог $HOME, если указано «»). Соответственно, под именем почтового ящика понимается имя ящика или имена ящиков, которые требуется вывести в списке (допускается групповой символ (*).

Почтовые ящики могут затем добавляться в список активных ящиков с помощью команды SUBSCRIBE, а удаляться из списка с помощью команды UNSUBSCRIBE. С помощью этих команд можно реализовать на базе клиента IMAP чтение групп новостей. При этом каждая группа новостей реализована как отдельный почтовый ящик на сервере, на которую затем можно подписаться. Сегодня большинство программ для работы с электронной почтой включают функцию чтения групп новостей, так что выполнение этих операций в IMAP не требуется.

Команда APPEND

APPEND — еще одна команда из семейства команд IMAP. Как правило, протокол IMAP применяется исключительно для чтения сообщений из почтовых ящиков. С помощью команды APPEND появляется возможность посылать сообщения в почтовый ящик, добавляя сообщение к концу файла почтового ящика. Эта функция работает не совсем корректно и она является довольно опасной, поэтому не рекомендуем увлекаться ею в качестве альтернативы SMTP. Это, скорее, приятное излишество протокола IMAP, а не рабочая лошадка. Основной формат команды APPEND следующий:

APPEND mailbox [(flags)] [date/time string] {message size} message

Команда CHECK

Команда CHECK используется для установки контрольной точки в почтовом ящике. Любые операции, такие, например, как запись данных из памяти сервера на его жесткий диск, должны выполняться при соответствующем состоянии почтового ящика. Именно для проверки целостности почтового ящика после дисковых и других подобных им операций и применяется команда CHECK. Эта команда используется без параметров.

Команда CLOSE

Команда CLOSE полностью соответствует своему названию — она закрывает почтовый ящик. ]’. 5 * OK localhost lMAP4rev1 v12.250 server ready 6 a1 login alex drums 7 a1 OK LOGIN completed 8 a2 select newbox 9 * 6 EXISTS 10 * 0 RECENT 11 * OK [UIDVAHDITY 937243866] DID validity status 12 * OK [UIDNEXT 8] Predicted next UID 13 * FLAGS (\Answered \Flagged \Deleted \Draft \Seen) 14 * OK [PERMANENTFLAGS (\* \Answered \Flagged \Deleted \Draft VSeen)] Permanent flags 15 * OK [UNSEEN 1] first unseen message in /home/alex/newbox 16 a2 OK [READ-WRITE] SELECT completed 17 a3 store 1 +flags \DELETED 18 * 1 FETCH (FLAGS (\Deleted)) 19 a3 OK STORE completed 20 a4 store 2 +flags \DELETED 21 * 2 FETCH (FLAGS (\Deleted)) 22 a4 OK STORE completed 23 a5 status newbox (messages unseen) 24 * STATUS newbox (MESSAGES 6 UNSEEN 6) 25 a5 OK STATUS completed 26 a6 expunge 27 * 1 EXPUNGE 28 * 1 EXPUNGE 29 * 4 EXISTS 30 * 0 RECENT 31 a6 OK Expunged 2 messages 32 a7 status newbox (messages unseen) 33 * STATUS newbox (MESSAGES 4 UNSEEN 4) 34 a7 OK STATUS completed 35 a8 logout 36 * BYE shadrach.sniallorg. org IMAP4rev1 server terminating connecion 37 a8 OK LOGOUT completed 38 Connection closed by foreign host. 39 [alex@shadrach alex]$

В строке 8 пользователь alex выбирает почтовый ящик с именем newbox. Строки 9–16 представляют собой ответ сервера с информацией относительно выбранного почтового ящика. Строка 9 говорит о том, что в нем находится 6 сообщений. В строках 17 и 20 пользователь alex воспользовался командой STORE, чтобы пометить два сообщения как удаленные (\DELETED). Затем в строке 23 пользователь alex выдает команду STATUS. Из строки 24 можно сделать заключение, что, с точки зрения сервера IMAP, в почтовом ящике все еще находятся шесть сообщений, хотя два из них помечены как удаленные. В строке 26 пользователь выдает команду EXPUNGE, по которой сообщения, помеченные как удаленные, стираются. Ответ сервера в строках 27–31 подтверждает, что сообщения были удалены из ящика и в нем осталось четыре сообщения. Это же подтверждает и команда STATUS, заданная в строке 32. На нее сервер отвечает, что в почтовом ящике теперь только четыре сообщения.

Команда SEARCH

Команда SEARCH является одним из наиболее мощных средств из арсенала IMAP. С помощью этой команды производится поиск сообщений по критериям в активном почтовом ящике с последующим отображением результатов в виде номера сообщения. Формат команды SEARCH следующий:

SEARCH [CHARSET specification] (search criteria)

Здесь CHARSET specification состоит из служебного слова CHARSET, за которым следует обозначение набора символов. Набор символов по умолчанию — ASCII, так что, как правило, этот параметр опускается. Параметр search criteria определяет ключевые критерии поиска и их значения. Критерии поиска описаны в табл. 7.3.

Таблица. Критерии поиска для команды SEARCH

Критерий поиска	Описание
<message set>	Сообщения с номерами, соответствующими заданному диапазону
ALL	Все сообщения в почтовом ящике
ANSWERED	Сообщения с флагом \ANSWERED
BCC <string>	Сообщения, содержащие заданную строку в поле заголовка BCC
BEFORE <date>	Сообщения, которые были созданы до указанной даты
BODY	Сообщения, содержащие в теле указанную строку
CC <string>	Сообщения, содержащие заданную строку в поле заголовка CC
DELETED	Сообщения с флагом \DELETED
DRAFT	Сообщения с флагом \DRAFT
FLAGGED	Сообщения с набором флагов \FLAGGED
From <string>	Сообщения, содержащие заданную строку в поле заголовка From
HEADER <field name> <STRING>	Сообщения, содержащие указанный заголовок с заданной в нем строкой
KEYWORD <flag>	Сообщения, содержащие указанный список критериев
LARGER <n>	Сообщения, размер которых больше n
NEW	Сообщения с флагом \RECENT, но без флага \SEEN
NOT <search key>	Сообщения, не содержащие указанный список критериев
OLD	Сообщения без флага \RECENT
ON <date>	Сообщения, которые были созданы в указанный день
OR <searchkey 1> <searchkey 2>	Сообщения, содержащие логические критерии поиска ИЛИ
RECENT	Сообщения с флагом \RECENT
SEEN	Сообщения с флагом \SEEN
SENTBEFORE <date>	Сообщения, которые были созданы до указанной даты, согласно полю заголовка Date
SENTON <date>	Сообщения, которые были созданы в указанную дату, согласно полю заголовка Date
SENTSINCE <date>	Сообщения, которые были созданы после указанной даты, согласно полю заголовка Date
SINCE <date>	Сообщения, которые были созданы после указанной даты
SMALLER <n>	Сообщения, размер которых не превышает n
TEXT <string>	Сообщения, которые содержат указанную строку или в заголовках, или в теле сообщения
UID <message set>	Сообщения с UID, соответствующими заданному диапазону
UNANSWERED	Сообщения без флага \ANSWERED
UNDELETED	Сообщения без флага \DELETED
UNDRAFT	Сообщения без флага \DRAFT
UNFLAGGED	Сообщения без набора флагов \FLAGGED
UNKEYWORD <flag>	Сообщения без набора заданных критериев
UNSEEN	Сообщения без флага \SEEN

Как видно из таблицы существует огромное количество критериев поиска сообщений. ]’. 4 * OK localhost IMAP4rev1 V12.250 server ready 5 a1 login alex drums 7 a1 OK LOGIN completed 8 a2 select inbox 9 * 2 EXISTS 10 * 0 RECENT 11 * OK [UIDVALIDITY 936999597] UID validity status 12 * OK [UIDNEXT 5] Predicted next UID 13 * FLAGS (\Answered \Flagged \Deleted \Draft \Seen) 14 * OK [PERMANENTFLAGS (\* \Answered \Flagged \Deleted \Draft \Seen)] Permanent fs 15 * OK [UNSEEN 1] first unseen message in /var/spool/mail/alex 16 a2 OK [READ-WRITE] SELECT completed 17 a3 search header subject test 18 * SEARCH 1 2 19 a3 OK SEARCH completed 20 a4 search header subject another 21 * SEARCH 2 22 a4 OK SEARCH completed 23 a5 search unseen 24 * SEARCH 1 2 25 a5 OK SEARCH completed 26 a6 logout 27 * BYE shadrach.smallorg.org IMAP4rev1 server terminating connection 28 a6 OK LOGOUT completed 29 Connection closed by foreign host. 30 [alex@shadrach alex]$

В строках 17, 20 и 23 показаны примеры использования команды SEARCH. Строки 18, 21 и 24 являются ответами сервера IMAP на команду SEARCH. В ответе содержатся номера сообщений, которые соответствуют критерию поиска. Если соответствий не найдено, то сервер возвращает слово SEARCH без идентификатора сообщения UID.

Команда FETCH

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

Команда STORE

Команда STORE применяется для изменения информации о сообщении. Формат команды следующий:

STORE <message set> <data item name> <data item value>

Аргумент <message set> задает диапазон номеров сообщений, к которым применяется команда STORE. В настоящее время для этой команды определено только два типа данных (<data item name>). Тип FLAGS определяет набор флагов, установленных для сообщения. Тип FLAGS.SILENT также определяет набор флагов, установленных для сообщения, но при этом сервер IMAP не возвращает их новое значение в своем ответе.

Поведением этих типов данных можно управлять, задав перед ними знак плюс (+) или минус (-). Знак плюс означает, что значение типа данных (<data item value>) будет добавлено к сообщению, минус — что оно будет удалено из сообщения.

17 a3 store 1 +flags \DELETED
18 * 1 FETCH (FLAGS (\Deleted))
19 a3 OK STORE completed

В строке 18 этого листинга показано, как устанавливается флаг \DELETED для сообщения в активном почтовом ящике с номером 1. Обратите внимание, что перед флагом задан знак плюс (+). Можно было бы также задать флаг (-). Тогда флаг \DELETED был бы отменен для сообщения (один из способов восстановить удаленное сообщение до того, как вступят в силу контрольные точки сообщения).

Сообщение, помеченное флагом \DELETED, не удаляется физически из почтового ящика до выполнения команд по назначению новых контрольных точек для почтового ящика. А это делается с помощью команд CHECK, EXPUNGE, SELECT или LOGOUT.

Команда COPY

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

COPY <message set> <mailbox name>

Здесь <message set> задает диапазон номеров сообщений, которые нужно скопировать из активного почтового ящика, а <mailbox name> указывает имя ящика, в который их нужно скопировать.

Для протокола IMAP не определена команда перемещения сообщений, но очевидно, что эта операция есть не что иное, как копирование сообщений в другой почтовый ящик с заданием для оригиналов сообщений флага \DELETED. После следующей ротации почтового ящика (расстановки контрольных точек) оригиналы сообщений будут удалены, и останутся только их копии.

Команда CAPABILITY

С помощью команды CAPABILITY клиент может запрашивать у сервера IMAP информацию о его возможностях.

Команда NOOP

Действия команды NOOP, как мы знаем, соответствует ее названию, т.е. она ничего не делает. Она может применяться для поддержки активности во время сеанса для того, чтобы сеанс не прекратился по таймеру интервала ожидания. Ответ сервера на команду NOOP всегда должен быть положительным. Так как сервер часто в ответе возвращает состояние выполнения той или иной команды, то NOOP вполне можно использовать как триггер для периодического запроса о состоянии сервера. Если что-то произошло с почтовым ящиком во время периода ожидания, например сервер удалил сообщения согласно правилам, установленным для почтового ящика администратором почтовой системы, то в ответ на команду NOOP будет возвращена обновленная информация о его состоянии.

Команда LOGOUT

Команда LOGOUT используется для завершения сеанса для текущего идентификатора пользователя и закрытия всех открытых почтовых ящиков. Если какие-либо сообщения были помечены флагом \DELETED, то с помощью этой команды они будут физически удалены из почтового ящика.

Протокол Доступа К Электронной Почте, Примеры

Содержание

  • 1 Архитектура электронной почты
  • 2 Протокол IMAP
    • 2.1 Место в стеке TCP/IP
    • 2.2 Папки (mailbox)
    • 2. 3 Флаги
    • 2.4 Состояния сеанса IMAP
    • 2.5 Ответы IMAP
  • 3 Пример сеанса IMAP
    • 3.1 Выбор папки
    • 3.2  Просмотр списка писем
    • 3.3 Чтение письма и установка флагов
    • 3.4 Удаление писем и выход
  • 4 Другие команды IMAP
  • 5 Заключение

IMAP расшифровывается, как Internet Message Access Protocol это протокол доступа к электронной почте. IMAP  и протокол РОР3 возникли в одно тоже время .

Первая версия появилась в 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 и они начинаются с обратного слеша (\).

  • \Seen –  означает, что сообщение было просмотрено.
  • \Answered – на сообщение был отправлен ответ
  • \Flagged – у сообщения повышенная важность или на него нужно ответь, как можно быстрее
  • \Draft – письмо не закончено и является черновиком
  • \Deleted – используется для пометки сообщения на удаление
  • \Recent – сообщение новое, при предыдущих подключениях клиента того сообщения не было.

Также могут создаваться Пользовательские флаги. Они не могут начинаться с символа \.

Состояния сеанса IMAP

При работе по протоколу IMAP клиент проходит через четыре состояния.

  1. Клиент не аутентифицирован (Not Authenticated) – клиент только что подключился к серверу IMAP и ему необходимо ввести свой логин и пароль, либо пройти аутентификацию каким-либо другим способом.
  2. Клиент аутентифицирован (Authenticated) – это означает, что клиент прошел успешную аутентификацию, подтвердил что он именно тот, за кого себя выдает, но пока не выбрал папку с которой он будет работать. При выборе папки происходит переход в следующее состояние.
  3. Папка выбрана (Selected) – после этого можно читать сообщения, которое находится в этой папке, и выполнять с ними требуемые действия.
  4. Выход (Logout) – разрыв соединения.

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

Для того чтобы отличать разные команды и ответы на них, в протоколе IMAP используются идентификаторы или теги команд. Это просто алфавитно-цифровая строка (А0001,А0002). Каждая команда клиента должна начинаться с тега. Сервер включает этот тег в ответ на команду, для того чтобы можно было определить к какой именно команде этот ответ относится.

Ответы IMAP

Ответ IMAP также как и других почтовых протоколов состоит из двух частей: Статус и Поясняющее сообщение.

В Статусе в ответов IMAP всего лишь три:

  • OK- означает, что команда выполнена успешна;
  • NO – при выполнении команды произошла ошибка;
  • BAD —  означает, что клиент запустил неправильную команду или указал неправильные или недостаточные аргументы.

Пример сеанса 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

* FLAGS (\Answered \Flagged \Draft \Deleted \Seen $Forwarded Junk NonJunk) // сервер показывает нам возможные флаги, кроме знакомых нам системных флагов, есть флаг  $Forwarded, который говорит, что сообщение кому-то переслали. А флаги Junk NonJunk сообщения является спамом или не является.

* 177 EXISTS

* 41 RECENT

* OK [UNSEEN 1]

* 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 сообщения удалены не будут.

* 179 EXPUNGE

A0007 OK Completed

A0008 LOGOUT //для разрыва соединений используется команда LOGOUT

* BYE LOGOUT received //сервер отвечает, что полученная команда LOGOUT говорит нам пока.

A0008 OK Completed //и выдает ответ ОК команда выполнена.

После этого соединение разрывается.

Другие команды IMAP

В протоколе IMAP имеется больше количество других команд.

  • команда «Работа с папками» которая позволяет создавать новые папки, удалять их, переименовывать, получать статус.

Команда Перемещение писем:

  • команда COPY которая является частью стандарта протокола IMAP4, которая позволяет копировать письмо из одной папки в другую.
  • и новая команда MOVE, которая является расширением стандарта IMAP принятая в 2013 году, позволяет перемещать сообщения из одной папки в другую.

С помощью команды SEARCH можно искать письма на сервере по требуемую шаблону.

Команда CLOSE выполняет закрытие папки, удаление в папке всех сообщений, которые помечены на удаление и переход в состояние authenticated. В этом состоянии клиент может выбрать другую папку и продолжить работу с ней.

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

Заключение

И так мы рассмотрели протокол IMAP. Он используется для чтения писем из почтового ящика пользователя.

Все письма хранятся на сервере, и с почтовым ящиком можно одновременно работать с нескольких устройств. Все эти устройства будут видеть согласованное состояние писем на сервере. Для отслеживание статуса сообщений в IMAP используются флаги, также в IMAP для удобства организации сообщений позволяет создавать на сервере папки.

Недостатком протокола — он очень сложный, с одной стороны это обусловлено тем, что задача, которую пытались решить разработчики протокола действительно является сложной, нужно обеспечить одновременную работу с почтовым ящиком нескольких клиентов, при чем эти клиенты могут выполнять запросы одновременно. В том числе конфликтующие между собой. С другой стороны протокол разрабатывался достаточно давно в конце 90-х в начале 2000-х готов  и тогда у разработчиков протоколов не было достаточно опыта.

Другой недостаток вызван тем, что все почтовые письма всех пользователей хранятся на сервере, если пользователей много, то серверу требуется большое количество дискового пространства. Однако сейчас, когда жесткие диски стали большими и относительно дешевыми, это уже не является такой большой проблемой.

Использование протокола IMAP | Справка Thunderbird

  • 1 О протоколе IMAP
  • 2 Преимущества IMAP
  • 3 Синхронизация
  • 4 Производительность и поиск
  • 5 Использование дискового пространства
  • 6 Настройка синхронизации и использования дискового пространства

IMAP означает Протокол Доступа к Сообщениям Интернет. Он дает возможность почтовому клиенту (например, Thunderbird) получить доступ к сообщениям, хранящимся на почтовом сервере. Это более современный и полнофункциональный протокол, чем POP (Почтовый Протокол), который является другим основным протоколом для доступа к сообщениям электронной почты. Большинство провайдеров электронной почты теперь поддерживают IMAP. Чтобы увидеть, использует ли ваша учетная запись протокол IMAP или POP, проверьте страницу Параметры сервера в Параметрах учетной записи:

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

  • Для доступа к сообщениям можно использовать несколько клиентов. Например, пользователь Thunderbird с учетной записью Microsoft Live может использовать как приложение Thunderbird, которое установлено на его систему, так и веб-интерфейс, предоставляемый Microsoft.
  • Пользователи Thunderbird могут загрузить свои сообщения на свой локальный компьютер и получить к ним доступ, даже когда они не подключены к Интернету.
  • Сообщения загружаются быстрее, если они хранятся на локальном диске. Скорость поиска гораздо быстрее, чем скорость поиска сообщений на удаленном сервере. Полнотекстовый поиск в теле сообщений возможен только в отношении сообщений, которые были загружены.

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

Чтобы понять, что такое синхронизация сообщений, надо рассмотреть следующие сценарии:

  • Сообщение загружается в Thunderbird и удаляется из Thunderbird. (Сообщение должно быть удалено как на локальной машине, так и на сервере электронной почты).
  • Сообщение загружается в Thunderbird, а затем удаляется через веб-интерфейс (например, Yahoo Mail или Gmail). (Сообщение должно быть удалено из хранилища сообщений Thunderbird).
  • Черновик сообщения составлен и сохранен (но не отправлен) в Thunderbird. (Черновик должен быть скопирован из хранилища сообщений Thunderbird на почтовый сервер).

Всякий раз, когда запускается Thunderbird, он проверяет состояние синхронизации между репозиторием сообщений Thunderbird и почтовым сервером, а затем выполняет любые действия, которые необходимы (например, загрузку новых сообщений с сервера, удаление любых сообщений с сервера, которые были удалены локально и т.д.). Thunderbird постоянно синхронизируется с почтовым сервером, пока он работает и имеет доступ к Интернету. Если доступ в Интернет пропал, Thunderbird будет синхронизироваться после восстановления доступа.

Не синхронизированные сообщения по-прежнему доступны в Thunderbird. Разница лишь в том, что вместо того, чтобы загружать всё сообщение, загружаются только «заголовки» сообщений. (Заголовки сообщений содержат информацию, такую как отправитель, получатель(и), тема сообщения и т.д. — всё, кроме тела сообщения). Тело сообщения не загружается, пока вы не щёлкните по сообщению в списке сообщений (что означает, что если вы не подключены к Интернету, вы не сможете прочитать сообщение).

Синхронизация влияет на производительность и использование дискового пространства.

Сообщения, которые хранятся локально, загружаются быстрее, чем сообщения, хранящиеся на почтовом сервере. Когда сообщения хранятся на почтовом сервере, тело сообщения не загружается, пока оно не вызывается (например, щелчком по сообщению в списке сообщений Thunderbird). Перед тем, как Thunderbird сможет отобразить текст сообщения, он должен загрузить его с сервера электронной почты.

Когда Thunderbird должен загрузить много сообщений с сервера электронной почты, это может привести к временному снижению производительности. Частично это обусловлено самим процессом загрузки, но также вызвано и процессом индексации (при этом текст сообщений анализируется и индексируется, что дает возможность быстрого и мощного поиска сообщений). После того, как загрузка и индексация завершится, производительность восстанавливается до нормального уровня. Статус синхронизации отображается в левом нижнем углу Thunderbird.

Полнотекстовый поиск в телах сообщений в Thunderbird доступен только для сообщений, которые были синхронизированы (то есть, загружены). Для не-синхронизированных сообщений доступен поиск только по заголовкам сообщений.

Если у вас имеется много сообщений электронной почты и ограничено место на локальном диске, вы можете не захотеть синхронизировать все ваши сообщения. Как отмечалось выше, заголовки сообщений всё ещё будут доступны для просмотра в Thunderbird на локальной машине. Тем не менее, тело сообщения будет загружено только «по требованию» и не будет доступно в автономном режиме.

Чтобы вручную настроить свойства синхронизации, откройте Синхронизация и хранение в диалоге Параметры учетной записи (ИнструментыПравка > Параметры учётной записи ).

Откройте Синхронизация и хранение в диалоге Параметры учетной записи (ИнструментыПравка > Параметры учётной записи )

В верхней части страницы поставьте галочку Хранить сообщения для этой учетной записи на этом компьютере, если вы хотите синхронизировать сообщения между локальной системой и почтовым сервером.

Если эта опция не установлена, вы можете указать отдельные папки для синхронизации. Щёлкните по кнопке Дополнительно…:

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

Общие настройки дискового пространства настраиваются в нижней части страницы Синхронизация и хранение. Вы можете установить общие параметры и тип синхронизации (например, синхронизировать последние сообщения или сообщения меньше определенного размера). Эта часть страницы также имеет опции для пакетного удаления сообщений (которые, конечно, должны быть использованы с осторожностью).

 


Поделитесь этой статьёй: http://mzl.la/1ApHiDr

Эти прекрасные люди помогли написать эту статью:

Unghost, Harry

Станьте волонтёром

Растите и делитесь опытом с другими. Отвечайте на вопросы и улучшайте нашу базу знаний.

Подробнее

Протокол IMAP | Протокол доступа к сообщениям в Интернете

следующий → ← предыдущая

IMAP расшифровывается как Internet Message Access Protocol . Это протокол прикладного уровня, который используется для получения электронной почты с почтового сервера. Это наиболее часто используемые протоколы, такие как POP3, для получения электронных писем.

Он также соответствует модели клиент/сервер. С одной стороны, у нас есть клиент IMAP, который представляет собой процесс, работающий на компьютере. С другой стороны, у нас есть сервер IMAP, который также является процессом, работающим на другом компьютере. Оба компьютера подключены через сеть.

Протокол IMAP находится на транспортном уровне TCP/IP, что означает, что он неявно использует надежность протокола. После установления TCP-соединения между клиентом IMAP и сервером IMAP сервер IMAP по умолчанию прослушивает порт 143, но этот номер порта также можно изменить.

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

  • Порт 143: это незашифрованный порт IMAP.
  • Порт 993: этот порт используется, когда клиент IMAP хочет безопасно подключиться через IMAP.

Почему мы должны использовать IMAP вместо протокола POP3?

POP3 становится самым популярным протоколом для доступа к почтовым ящикам TCP/IP. Он реализует автономную модель доступа к почте, что означает, что письма извлекаются с почтового сервера на локальном компьютере, а затем удаляются с почтового сервера. В настоящее время миллионы пользователей используют протокол POP3 для доступа к входящей почте. Из-за модели доступа к почте в автономном режиме ее нельзя использовать так часто. Онлайн-модель, которую мы бы предпочли в идеальном мире. В онлайн-модели нам нужно всегда быть подключенным к Интернету. Самая большая проблема с автономным доступом с использованием POP3 заключается в том, что почта навсегда удаляется с сервера, поэтому несколько компьютеров не могут получить доступ к почте. Решение этой проблемы состоит в том, чтобы хранить почту на удаленном сервере, а не на локальном сервере. POP3 также сталкивается с другой проблемой, а именно безопасностью и безопасностью данных. Решением этой проблемы является использование модели отключенного доступа, которая обеспечивает преимущества как онлайн-, так и офлайн-доступа. В модели с отключенным доступом пользователь может получать почту для локального использования, как в протоколе POP3, и пользователю не нужно постоянно подключаться к Интернету. Однако изменения, внесенные в почтовые ящики, синхронизируются между клиентом и сервером. Почта остается на сервере, чтобы в будущем к ней могли получить доступ различные приложения. Когда разработчики осознали эти преимущества, они предприняли несколько попыток реализовать модель отключенного доступа. Это реализовано с помощью команд POP3, которые позволяют оставить почту на сервере. Это работает, но только в ограниченной степени, например, отслеживание того, какие сообщения являются новыми или старыми, становится проблемой, когда оба извлекаются и оставляются на сервере. Таким образом, в протоколе POP3 отсутствуют некоторые функции, необходимые для надлежащей модели отключенного доступа.

В середине 1980-х годов в Стэнфордском университете началась разработка нового протокола, обеспечивающего более удобный способ доступа к почтовым ящикам пользователей. Результатом стала разработка интерактивного протокола доступа к почте, который позже был переименован в Internet Message Access Protocol .

История и стандарты IMAP

Первая версия IMAP была официально задокументирована как интернет-стандарт IMAP версии 2 в RFC 1064 и опубликована 19 июля.88. Он был обновлен в RFC 1176 в августе 1990 г. с сохранением той же версии. Поэтому они создали новый документ версии 3, известный как IMAP3. В RFC 1203, который был опубликован в феврале 1991 года. Однако IMAP3 так и не был принят рынком, поэтому люди продолжали использовать IMAP2. Позже было создано расширение протокола под названием IMAPbis, которое добавило поддержку многоцелевых расширений почты Интернета (MIME) в IMAP. Это было очень важным событием из-за полезности MIME. Несмотря на это, IMAPbis никогда не публиковался в виде RFC. Это может быть связано с проблемами, связанными с IMAP3. 19 декабря94, IMAP версии 4, т. е. IMAP4, был опубликован в двух RFC, т. е. RFC 1730, описывающем основной протокол, и RFC 1731, описывающем механизм аутентификации для IMAP 4. IMAP 4 — это текущая версия IMAP, которая широко используется сегодня. Он продолжает совершенствоваться, и его последняя версия фактически известна как IMAP4rev1 и определена в RFC 2060. Последний раз он был обновлен в RFC 3501.

Функции IMAP

IMAP был разработан для конкретной цели, которая обеспечивает более гибкий способ доступа пользователя к почтовому ящику. Он может работать в любом из трех режимов: онлайн, офлайн и в автономном режиме. Из них автономный и отключенный режимы представляют интерес для большинства пользователей протокола.

Следующие особенности протокола IMAP:

  • Доступ и получение почты с удаленного сервера: пользователь может получить доступ к почте с удаленного сервера, сохраняя почту на удаленном сервере.
  • Установить флаги сообщения: Флаг сообщения устанавливается, чтобы пользователь мог отслеживать, какое сообщение он уже видел.
  • Управление несколькими почтовыми ящиками: пользователь может управлять несколькими почтовыми ящиками и передавать сообщения из одного почтового ящика в другой. Пользователь может организовать их в различные категории для тех, кто работает над различными проектами.
  • Определить информацию перед загрузкой: решает, получать ли почту перед загрузкой с почтового сервера.
  • Загружает часть сообщения: позволяет загружать часть сообщения, например, одну часть тела из части mime-multi. Это может быть полезно, когда в коротком текстовом элементе сообщения есть большие мультимедийные файлы.
  • Организация почты на сервере: в случае POP3 пользователю не разрешено управлять почтой на сервере. С другой стороны, пользователи могут организовывать почту на сервере в соответствии со своими требованиями, например создавать, удалять или переименовывать почтовый ящик на сервере.
  • Поиск: пользователи могут искать содержимое электронных писем.
  • Проверить заголовок электронной почты: пользователи также могут проверить заголовок электронной почты перед загрузкой.
  • Создать иерархию: пользователи также могут создавать папки для организации почты в иерархию.

Общие операции IMAP

  1. IMAP — это клиент-серверный протокол, подобный POP3 и большинству других прикладных протоколов TCP/IP. Протокол IMAP4 работает только тогда, когда IMAP4 должен находиться на сервере, где расположены почтовые ящики пользователей. В c для POP3 не обязательно требуется тот же самый физический сервер, который предоставляет услуги SMTP. Следовательно, в случае протокола IMAP почтовый ящик должен быть доступен как для SMTP для входящей почты, так и для IMAP для получения и модификации.
  2. IMAP использует протокол управления передачей (TCP) для связи, чтобы обеспечить доставку данных, а также их получение в заказе.
  3. IMAP4 прослушивает хорошо известный порт, т. е. номер порта 143, для входящего запроса на подключение от клиента IMAP4.

Давайте разберемся с протоколом IMAP на простом примере.

Протокол IMAP синхронизирует все устройства с главным сервером. Предположим, у нас есть три устройства: настольный компьютер, мобильный телефон и ноутбук, как показано на рисунке выше. Если все эти устройства обращаются к одному и тому же почтовому ящику, то он будет синхронизирован со всеми устройствами. Здесь синхронизация означает, что когда почта будет открыта одним устройством, то она будет помечена как открытая на всех остальных устройствах, если мы удалим почту, то почта будет удалена и со всех остальных устройств. Итак, у нас есть синхронизация между всеми устройствами. В IMAP мы можем видеть все папки, такие как спам, входящие, отправленные и т. д. Мы также можем создать собственную папку, известную как настраиваемая папка, которая будет видна на всех других устройствах.


Следующая темаПротокол POP

← предыдущая следующий →

Все, что вам нужно знать о IMAP

В этом посте мы собираемся погрузиться в IMAP. IMAP означает протокол доступа к сообщениям в Интернете, и это открытый стандарт, который описывает, как получить доступ к сообщениям в почтовом ящике электронной почты. Хотя IMAP является важной частью получения электронной почты, его не всегда легко реализовать (или понять), поэтому Nylas и существует! Короче говоря, IMAP — это протокол, который почтовые клиенты, такие как Mail. app, Thunderbird и Mailspring, используют для загрузки сообщений из вашей учетной записи электронной почты и внесения изменений, таких как архивирование сообщений или их сортировка по папкам.

Краткая история IMAP

Первоначально IMAP был создан Марком Криспином в Стэнфорде в 1980-х годах. Позже Криспин перешел в Вашингтонский университет и провел там 20 лет, работая над спецификациями IMAP и эталонной реализацией. Спецификация IMAP представлена ​​в виде «Запроса на комментарии» или RFC, который в основном представляет собой служебную записку, описывающую, как реализовать протокол, который был принят в качестве стандарта Инженерной группой Интернета. RFC могут быть пересмотрены для внесения уточнений или изменений, а текущим RFC, описывающим IMAP, является RFC3501, опубликованный в 2003 году. Верно: протоколу, используемому большинством почтовых клиентов для синхронизации электронной почты, более 15 лет!

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

Первоначальная версия IMAP утеряна для истории, а IMAP2 (выпущенный в 1988 г.) — первая версия, вошедшая в стандарты. Эта первая версия IMAP поддерживала только «онлайн» работу: предполагалось, что ваш почтовый клиент будет подключаться к серверу при просмотре или изменении сообщений. Вы не могли использовать его для локальной синхронизации копии вашего почтового ящика, а затем обновлять локальную копию при повторном подключении, потому что сообщения идентифицировались только по «порядковому» номеру, а порядковые номера не сохранялись между клиентскими сеансами. Можно только представить, что в те дни люди полагали, что всякий раз, когда вы хотите проверить свою электронную почту, у вас обязательно будет надежное сетевое соединение. Я предполагаю, что это произошло из-за того, что вычисления с мэйнфреймов и систем с разделением времени, по сути, выполняли вход непосредственно на серверную машину, а это означало, что в вашем распоряжении всегда было подключение к Интернету.

Перенесемся на несколько лет вперед, в эпоху коммутируемого доступа, и станет очевидным, что постоянное использование телефонной линии для чтения электронной почты не поможет. Введите поддержку «отключенных» операций, которая была добавлена ​​к IMAP с введением IMAP4 в 1994 году. Эта версия протокола добавила постоянные идентификаторы сообщений (называемые «UID») и полную черновую спецификацию, объясняющую, как вы можете синхронизировать изменения, внесенные в данные из локального кэша в данные, хранящиеся на сервере, с помощью команд IMAP. Мы поговорим об этом подробнее позже, но эта эволюция протокола с течением времени является основной причиной того, что реализация клиентов IMAP в современную эпоху сложна, поскольку работа в автономном режиме является обязательной функцией для современных приложений.

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

Как работает IMAP

Теперь, когда вы немного знакомы с историей протокола, мы в интерактивном режиме познакомим вас с основными принципами его работы. Мы собираемся подключиться к учетной записи электронной почты, перечислить все доступные папки в почтовом ящике и загрузить сообщение. Попутно мы определим и объясним соответствующие части протокола, необходимые для понимания того, что происходит.

Вы сможете следить за ходом протокола, если у вас есть доступ к терминалу, утилите командной строки openssl и учетной записи электронной почты, поддерживающей IMAP (включая Gmail).

TCP, HTTP и IMAP

Многие современные клиент-серверные протоколы используются между веб-браузером и сервером или между приложением и API. Все эти API реализованы поверх базового протокола HTTP («протокол передачи гипертекста»), который определяет семантику различных типов запросов — GET, PUT, POST и т. д. HTTP, в свою очередь, реализован поверх более низкого уровня. протокол под названием TCP («протокол управления передачей»), который просто гарантирует, что пакеты информации будут надежно доставлены в пункт назначения.

IMAP, как и HTTP, реализован поверх TCP и определяет семантику различных типов запросов, называемых IMAP-командами. IMAP в целом гораздо более лаконичен, чем HTTP, который был ключевым для IMAP в начале 90-х, поскольку сетевые соединения были очень низкоскоростными.

IMAP шаг за шагом

Начнем! Следуйте дома в своем терминале, введя команды, введя данные своей учетной записи электронной почты, где это необходимо. Обратите внимание: если вы используете Gmail, вам может потребоваться отключить защиту от входа в систему из «менее безопасных приложений», чтобы это работало.

Первое, что должен сделать любой клиент, это установить соединение с удаленным сервером через определенный порт. Эти порты могут различаться, поскольку почтовые серверы сначала принимали соединения с открытым текстом, а позже добавили поддержку безопасных зашифрованных соединений. Как правило, вы можете найти настройки вашего провайдера, прочитав их справочные статьи. Например, здесь можно найти настройки для Gmail. (Если вам интересно, почему используются разные порты, мы рекомендуем это фантастическое руководство от Fastmail.)

Получили настройки для безопасного соединения? Пойдем!

В командной строке мы можем подключиться с помощью утилиты командной строки openssl . Мы должны использовать openssl , а не telnet , потому что в противном случае мы можем в конечном итоге отправлять конфиденциальные данные, такие как пароли и личные электронные письма, в открытом виде по сети, оставляя их открытыми для прослушивания сети злоумышленником. openssl защищает наше соединение, создавая безопасное соединение и проверяя сертификат удаленного сервера перед продолжением.

 $ openssl s_client -connect imap.gmail.com:993 -crlf [... проверка сертификата удалена для краткости...]
* OK Gimap готов к запросам от 216.38.147.18 h2mb556258870pjq 

В приведенной выше команде s_client означает, что мы вызываем функциональность openssl для работы в качестве базового клиента SSL/TLS, -connect указывает, какое имя хоста и порт для подключения, а -crlf преобразуется, когда вы нажимаете «Enter» в своем терминале, в символы, ожидаемые сервером IMAP для правильного завершения строки. После подключения openssl проверяет сертификат SSL/TLS на сервере, чтобы убедиться, что наше соединение не перехвачено, и сервер IMAP отображает приветствие, сообщающее, что он готов принимать запросы от клиента.

Команды

Команды IMAP обычно выглядят следующим образом:

[…]

Мы объясним эти части в контексте примера команды CAPABILITY. ВОЗМОЖНОСТЬ позволяет запрашивать у сервера, какие расширения IMAP он поддерживает:

 тег1 ВОЗМОЖНОСТИ
* ВОЗМОЖНОСТЬ IMAP4rev1 УДАЛИТЬ IDLE ИДЕНТИФИКАЦИОННУЮ КВОТУ ПРОСТРАНСТВА ИМЕН XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTh3 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN AUTH=OAUTHBEARER AUTH=XOAUTH
tag1 OK Это все, что она написала! h2mb556258870pjq 

Ваху, мы только что связались с сервером IMAP! Давайте объясним, что мы отправили и что мы получили обратно.

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

Команда CAPABILITY не имеет аргументов, но если бы они были, мы бы просто ввели их после имени команды и до нажатия клавиши ввода.

Тегирование

Теги ( tag1 в этом примере) генерируются клиентом, и сервер отправляет тег обратно в последней строке ответа на команду. Теги могут содержать любые буквенно-цифровые символы и даже некоторые символы, и не обязательно должны содержать восходящее целое число, хотя это может быть удобным способом создания уникальных тегов. Ответы сервера, начинающиеся с * называются ответами без тегов, что означает, что они не представляют собой завершение команды, запрошенной клиентом. В этом случае нетегированный ответ — это список возможностей, а тегированный ответ — это OK статус команды и забавное сообщение, оставленное программистами сервера.

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

Возможности

Что вообще означает этот список «возможностей»? «Возможность» — это краткое название функции, которую поддерживает сервер. Некоторые из этих возможностей, например AUTH=PLAIN , включены в базовую спецификацию IMAP4rev1, а другие активируются расширениями. Расширения позволяют добавлять новые команды в протокол IMAP, не требуя новой версии спецификации протокола. Перед входом в систему список поддерживаемых возможностей на сервере будет отличаться от возможностей после входа в систему, так как мало смысла в перечислении возможностей, которые не относятся к состояниям входа или выхода из системы.

Аутентификация

Вот как вы аутентифицируете свою учетную запись электронной почты на сервере IMAP:

 tag2 ВХОД [электронная почта защищена]
tag2 NO [AUTHENTICATIONFAILED] Неверные учетные данные (сбой) 

Ответы сервера

Как видите, ответы сервера не всегда говорят OK . Вот краткое руководство по разрешенным ответам сервера на команду:

OK = успех!
НЕТ = отказ!
ПЛОХО = Я не понял, что ты сказал!

Сервер может добавить немного дополнительной информации после ответа, если он того пожелает, например, [AUTHENTICATIONFAILED] Invalid Credentials (Failure) .

 tag3 ВХОД [электронная почта защищена]
* ВОЗМОЖНОСТЬ IMAP4rev1 УДАЛИТЬ ИДЕНТИФИКАЦИОННУЮ КВОТУ ПРОСТРАНСТВА ИМЕН БЕЗ ВЫБОРА XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT LIST-EXTENDED LIST-STATUS LITERAL-SPECIAL-USE APPENDLIMIT=35651584
tag3 OK [email protected] authentication (Success) 

Как видите, после успешного входа сервер снова отправляет клиенту список возможностей, показывая, какие новые возможности были разблокированы в результате входа в систему, а какие старые ушли. Некоторые стандартные расширения в этом списке UIDPLUS , MOVE и CONDSTORE . Некоторые пользовательские расширения, поддерживаемые Gmail, но не в других местах, это ESEARCH и X-GM-EXT-1 .

Список папок

Хорошо, теперь, когда мы вошли в систему, давайте попробуем сделать что-нибудь полезное. Сначала проверим, какие папки существуют в почтовом ящике:

 tag4 LIST
tag4 BAD Не удалось проанализировать команду 

Упс! Как видите, если вы неправильно введете аргументы команды, сервер отклонит ее и скажет 9. 0106 БАД клиент!

 тег5 СПИСОК "" "*"
* LIST (HasNoChildren) "/" "Журнал вызовов"
* СПИСОК (HasNoChildren) "/" "INBOX"
* СПИСОК (HasChildren Noselect) "/" "[Gmail]"
* СПИСОК (Все HasNoChildren) "/" "[Gmail]/Вся почта"
* СПИСОК (Черновики HasNoChildren) "/" "[Gmail]/Черновики"
* LIST (HasNoChildren Важно) "/" "[Gmail]/Важно"
* СПИСОК (Отправлено без детей) "/" "[Gmail]/Отправленная почта"
* LIST (HasNoChildren Junk) "/" "[Gmail]/Спам"
* СПИСОК (с пометкой HasNoChildren) "/" "[Gmail]/Помеченные"
* СПИСОК (Корзина HasNoChildren) "/" "[Gmail]/Корзина"
* СПИСОК (HasNoChildren) "/" "метка"
tag5 OK ​​Успех 

Флаги папок

Здесь мы можем увидеть иерархию папок, которая существует в почтовом ящике. Папки имеют специальные флаги, указанные в скобках. Некоторые из этих флагов полезны для обхода иерархии папок, например HasNoChildren и HasChilden , а другие используются для обозначения особых характеристик данной папки, например, содержит ли она черновики ( Drafts ) или отправленные сообщения ( Sent ). Эти флаги позволяют клиентам адаптировать свое поведение к почтовому ящику и выполнять такие действия, как сохранение отправленных сообщений в нужную папку, независимо от того, на каком языке находится почтовый ящик пользователя.

Сессии

Хорошо, теперь давайте прочитаем письмо. Во-первых, поскольку соединения IMAP сохраняют состояние, нам нужно открыть сеанс в интересующей нас папке с помощью команды SELECT :

 tag6 SELECT "INBOX"
* ФЛАГИ (Отвечено Помечено Черновик Удалено Просмотрено $NotPhishing $Phishing)
* OK [PERMANENTFLAGS (Отвечено Помечено Черновик Удалено Просмотрено $NotPhishing $Phishing *)] Разрешены флаги.
* OK [UIDVALIDITY 1] Допустимые UID.
* 55 СУЩЕСТВУЕТ
* 0 ПОСЛЕДНИЕ
* ОК [UIDNEXT 54948] Прогнозируемый следующий UID.
* ОК [HIGHESTMODSEQ 11865059]
tag6 OK [ЧТЕНИЕ-ЗАПИСЬ] INBOX выбран. (Успех) 

Здесь сервер отправляет нам много информации! Сеансы являются ключевым компонентом работы IMAP, и сеанс длится с момента, когда вы ВЫБЕРИТЕ почтовый ящик, до тех пор, пока вы ОТМЕНИТЕ его, ВЫБЕРИТЕ другой почтовый ящик или не выйдете из системы.

При открытии сеанса этот сервер отправил нам, в дополнение к ОК, указывающему на успех:

  • список активных флагов, используемых для сообщений в почтовом ящике
  • список поддерживаемых флагов, которые можно использовать в сообщениях в почтовом ящике
  • UIDVALIDITY – об этом чуть позже
  • количество сообщений в почтовом ящике
  • сколько «последних» сообщений находится в почтовом ящике, что означает, сколько сообщений помечено флагом Recent
  • «предсказанный следующий UID»
  • a Значение HIGHESTMODSEQ — подробнее об этом чуть позже

Некоторые из этих предметов потребуют более подробного объяснения. Во-первых, UID.

UID и порядковые номера

Напоминание: давным-давно существовал IMAP2, и в IMAP2 сообщения идентифицировались порядковыми номерами. Порядковые номера были буквально такими: монотонно увеличивающиеся числа, по одному для каждого сообщения в почтовом ящике:

 tag7 ПОИСК ВСЕ
* ПОИСК 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 454 4 4 4 49 50 51 52 53 54 55
tag7 OK ПОИСК завершен (успешно) 

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

Эта очень простая схема работала очень хорошо, если все, что вы делали, это подключались, читали почту в Интернете и отключались. Но это не сработало, если вы хотели подключиться, загрузить всю свою почту локально для доступа в автономном режиме, а затем снова подключиться позже, чтобы ваш клиент синхронизировал свое локальное состояние с состоянием на сервере, потому что эти непостоянные порядковые номера не работали. Не разрешать клиентам сопоставлять состояние локального почтового ящика с состоянием удаленного почтового ящика, поскольку сообщения на каждой стороне могут иметь разные идентификаторы!

Введите IMAP4 и UID. UID (уникальные идентификаторы) сохраняются для сообщения до тех пор, пока оно остается в той же папке и целое число UIDVALIDITY сервера не увеличивается. Поэтому, когда клиент запускает новую сессию в почтовом ящике, он должен проверить значение UIDVALIDITY и сравнить его со своим локальным кешированным значением, а если значение UIDVALIDITY сервера выше, он должен отбросить все кешированные локальные UID и выполнить повторную синхронизацию с нуля. Но в остальном он может свободно сравнивать свои локальные кэшированные данные с данными на сервере и только синхронизировать изменения.

Чтобы сохранить обратную совместимость, IMAP4 поддерживает как порядковые номера, так и UID, и вы можете запрашивать UID, добавляя к любой команде, возвращающей идентификатор сообщения, префикс UID :

 tag8 UID SEARCH ALL
* SEARCH 53809 54180 54185 54211 54222 54268 54410 54451 54452 54453 54463 54527 54557 54595 54596 54602 54608 54617 54637 54639 54643 54664 54667 54670 54673 54699 54707 54738 54753 54754 54804 54806 54847 54852 54857 54864 54873 54877 54880 54881 54883 54888 54895 54899 54902 54903 54904 54905 54906 54916 54923 54926 54931 54942 54947
tag8 OK SEARCH завершен (успешно) 

Как видите, в отличие от порядковых номеров, не гарантируется, что UID будут увеличиваться с приращением на единицу — в UID, назначенных почтовому ящику, появляются пробелы по мере поступления сообщений и их перемещения между папками.

Statefulness

Пока мы здесь, одно замечание по поводу statefulness: как правило, statefulness не является желательной функцией протоколов. Statefulness усложняет использование пулов соединений с IMAP, потому что 9Команда 0106 SELECT может быть довольно медленной, и каждый раз, когда потребитель пула проверяет новое соединение, ему необходимо убедиться, что выбран правильный почтовый ящик. Сохранение состояния также означает, что код приложения должен отслеживать состояние и обеспечивать его синхронизацию с фактическим состоянием соединения, иначе каждый раз, когда требуется информация, выполняется обмен данными между клиентом и сервером. Как правило, проще программировать с протоколами без сохранения состояния, чем с протоколами с отслеживанием состояния.

Получение данных сообщения

Хорошо, давайте, наконец, загрузим данные из сообщения!

 tag13 UID FETCH 53809 (ТЕЛО ФЛАГА [ЗАГОЛОВОК.ПОЛЯ (ДАТА ОТ)])
* 1 FETCH (UID 53809 FLAGS (Answed Seen) BODY[HEADER. FIELDS (DATE FROM)] {80} From: My Friend <[email protected]> Date: Sun, 18 Feb 2018 10:50:34 -0500 )
* 55 УДАЛИТЬ
* 54 СУЩЕСТВУЕТ
tag13 OK Success 

IMAP предоставляет множество кнопок, позволяющих клиентам запрашивать частичные данные о сообщениях, включая размер сообщения, флаги (например, Просмотрено , что означает, что сообщение было прочитано, и Отвечено , что означает, что на сообщение был дан ответ), отдельные заголовки и отдельные части MIME из сообщения MIME, что позволяет клиентам оптимизировать использование пропускной способности путем загрузки только нужные им данные. Например, клиент может быстро загрузить только базовые заголовки для всех сообщений в папке, чтобы создать список сообщений для просмотра пользователем, а затем получить тело сообщения по запросу.

Есть еще пара концепций, связанных с IMAP, прежде чем мы закончим.

Незапрошенные ответы и IDLE

Вы могли заметить некоторые странные непомеченные ответы в предыдущем примере:

 * 55 EXPUNGE * 54 EXISTS 

На самом деле это уведомление об исчезновении одного сообщения из почтового ящика и появлении другого сообщения, пока мы у меня был открыт почтовый ящик. В IMAP сервер может отправлять эти нежелательные сообщения подключенному клиенту в любое время. Существует также режим, в который вы можете перевести соединение IMAP, называемый IDLE, который, по сути, предназначен только для обработки уведомлений об изменениях в почтовом ящике и часто используется клиентами для быстрой синхронизации новых входящих сообщений.0006

Синхронизация без подключения

Синхронизация без подключения позволяет почтовым приложениям хорошо работать при наличии Wi-Fi в самолете и плохой сотовой связи. Это не столько первоклассная функция IMAP, сколько то, что вы можете создать поверх протокола, приложив значительные усилия, потому что IMAP изначально не был предназначен для его поддержки.

Способ выполнить автономную синхронизацию с IMAP4 в его исходной форме был довольно упрощенным: вам нужно было взять список UID, который у вас есть локально для каждой папки, и сравнить его со списком UID, который в данный момент находится в папке на сервере. , а также извлекать новые сообщения и удалять старые в зависимости от различий. По мере роста почтовых ящиков это становилось все более и более сложным для клиентов, и более поздние расширения, такие как CONDSTORE и QRESYNC, улучшили процесс повторной синхронизации без подключения. Но даже с этими расширениями процесс повторной синхронизации без подключения сложно реализовать, и даже сегодня многие реализации серверов IMAP не поддерживают более новые расширения, поэтому клиенты общего назначения должны содержать условную логику для разных серверов. Общая ссылка на то, как реализовать отключенную синхронизацию поверх IMAP, — RFC4549..

Резюме

Хорошо, мы сделали это! Прочитав этот пост, вы узнали об истории и основных компонентах IMAP, открытого протокола для доступа к удаленным почтовым ящикам и управления ими. Мы подключились к серверу IMAP, вошли в нашу учетную запись электронной почты, перечислили папки на удаленном сервере и загрузили данные сообщений. Это именно то, что происходит под капотом в почтовых приложениях, когда вы просматриваете свой почтовый ящик. Мы также узнали, что из-за того, как IMAP развивался на протяжении многих лет, автономная синхронизация довольно сложна для реализации клиентами, поэтому мы создали наш дельта-API, чтобы упростить этот процесс.

В следующий раз мы углубимся в другой жизненно важный открытый протокол для электронной почты: SMTP, с помощью которого отправляются электронные письма. Мы надеемся, что вы останетесь и присоединитесь к веселью!

Все о IMAP-портах 143 и 25

Все о IMAP-портах 143 и 25 — Monsterhost

Дополнительные сведения об IMAP помогут вам принимать более обоснованные решения по управлению электронной почтой. Итак, без лишних слов, вот все, что вам нужно знать о вашем порте IMAP! Это руководство для начинающих, поэтому мы начнем с основ:

Содержание

Что такое IMAP?

IMAP — это протокол электронной почты, который позволяет вам получать доступ к электронной почте на всех ваших устройствах, где бы вы ни находились. Это означает, что если вы используете IMAP , вы можете читать и отправлять электронные письма со своего ноутбука, планшета и мобильного телефона. IMAP — не единственный протокол электронной почты — например, есть также POP3 и SMTP . Но IMAP — это протокол электронной почты, который предпочитает большинство людей.

Протокол электронной почты — это просто стандартный метод обмена информацией между почтовыми клиентами. (Некоторые примеры почтовых клиентов Gmail, Yahoo и Outlook .) MonsterHost предлагает размещенный обмен из Microsoft Outlook, поэтому, если вы пользуетесь этой службой, вам, вероятно, захочется использовать IMAP.

Почему IMAP является предпочтительным протоколом?

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

POP3 — это еще один протокол электронной почты, который, вероятно, использовало большинство людей в то или иное время. POP3 позволяет читать, создавать и удалять электронные письма даже при отсутствии подключения к Интернету. (Электронные письма доставляются, как только вы подключаетесь к Интернету.) Несмотря на то, что POP3 полезен, большинство людей по-прежнему предпочитают IMAP.

В основном это связано с тем, что IMAP позволяет нескольким пользователям одновременно отправлять электронные письма. Это позволяет компаниям делегировать коммуникационные обязанности многим членам команды, а не одному.

Кроме того, в отличие от POP3, IMAP по умолчанию хранит электронные письма на сервере. Если вы хотите, чтобы письмо было удалено с сервера, вам придется удалить его вручную. (Сообщения электронной почты POP3 удаляются с сервера, как только они прочитаны.)
Теперь, когда вы понимаете IMAP, вот краткий курс по порту IMAP:

Что такое порт IMAP?

Порт электронной почты помогает серверам электронной почты обмениваться данными. Точно так же, как IP-адрес идентифицирует компьютеры, порт электронной почты идентифицирует протокол электронной почты 9.0009 (например, IMAP), который использует компьютер.

Дополнительная информация о порте IMAP поможет вам принимать более эффективные решения по управлению электронной почтой, поскольку не все порты работают одинаково и не все порты принимаются одинаково. (Например, некоторые интернет-провайдеры и облачные провайдеры блокируют сообщения электронной почты, поступающие с незашифрованного порта.)

Что вам нужно знать о вашем порте IMAP

1. Порт IMAP имеет незашифрованное соединение и зашифрованное соединение

вы используете незашифрованное соединение IMAP, порт по умолчанию — 143.
При использовании зашифрованного соединения IMAP порт по умолчанию — 993 .
Мы рекомендуем вам использовать зашифрованный порт IMAP (993), так как это помогает обеспечить вашу безопасность и конфиденциальность в Интернете.

2. IMAP загружает информацию поэтапно

Одна из причин, по которой IMAP работает так быстро, заключается в том, что он загружает только ту информацию, которая ему необходима. Итак, когда вы случайно просматриваете свои сообщения, не открывая их, IMAP загружает такую ​​информацию, как отправитель, тема и дата отправки электронного письма. Фактическое сообщение электронной почты не будет загружено, пока вы его не откроете.

3. Как добавить учетную запись электронной почты в Outlook и Windows 10

Чтобы добавить учетную запись электронной почты в Outlook (который также включает Outlook.com и Outlook в Интернете) и в приложение «Календарь» и приложение «Почта» в Windows 10 вам необходимо знать тип учетной записи, имена серверов (входящие и исходящие), а также настройки SSL и порта.

Чтобы получить эти настройки, вы можете обратиться к своему провайдеру электронной почты, но мы также подготовили список настроек для некоторых из самых популярных провайдеров здесь:

Порт IMAP поставщика услуг электронной почты

Поставщик услуг электронной почты Порт IMAP
Gmail Сервер: imap. gmail.com
Порт: 993
Шифрование: SSL/TLS
Майкрософт 365 Сервер: outlook.office365.com
Порт: 993
Шифрование: SSL/TLS
iCloud Сервер: imap.mail.me.com
Порт: 993
Шифрование: SSL/TLS
АОЛ Сервер: imap.aol.com
Порт: 993
Шифрование: SSL/TLS
MSN Сервер: imap-mail.outlook.com
Порт: 993
Шифрование: SSL/TLS
Yahoo! Сервер: imap.mail.yahoo.com
Порт: 993
Шифрование: SSL
Outlook.com
Hotmail.com
Live.com
Сервер: outlook.office365.com
Порт: 993
Шифрование: SSL/TLS

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

Подведение итогов

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

Хостинг MonsterHost поставляется с бесплатными почтовыми приложениями веб-почты cPanel, которые вы можете подключить к Outlook, Thunderbird и Gmail, поэтому не стесняйтесь проверить наши удивительные, одобренные клиентами пакеты, чтобы увидеть, какой из них подойдет вам. Мы надеемся, что это руководство помогло вам узнать больше об использовании IMAP и вашем порте IMAP!

Саманта Профессиональная консультация 12 апреля 2021 г.

Hosting

Add-ons

Company

Support

Hosting

Add-ons

Company

Support

Zonat Sarl
14, rue Robert Stumper, L-2557, Люксембург
№ RCSL: B98480
Номер плательщика НДС: LU24837666
+31 102233701

Фейсбук

Твиттер

YouTube

Линкедин

Copyright © 2022 Monsterhost.com
Торговая марка Zonat Sarl. Все права защищены.