Что такое код imap_unsubscribe

Содержание

Что такое 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_unsubscribe

Протокол IMAP представляет собой альтернативу POP3.

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

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

Преимущества по сравнению с POP3

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

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

Благодаря системе флагов, определенной в IMAP4, клиент может отслеживать состояние сообщения (прочитано, отправлен ответ, удалено и т. д.); данные о флагах хранятся на сервере.

Клиенты IMAP4 могут создавать, переименовывать и удалять ящики и перемещать сообщения между ящиками. Кроме того, можно использовать расширение IMAP4 Access Control List (ACL) Extension (RFC 4314) для управления правами доступа к ящикам.

Поиск сообщений происходит на стороне сервера.

IMAP4 имеет явный механизм расширения.

Версии протокола IMAP

  • Original IMAP (1986, спецификация отсутствует)
  • IMAP2 (1988 — RFC 1064, 1990 — RFC 1176)
  • IMAP3 (1991, RFC 1203)
  • IMAP2bis (спецификация существует только в черновом варианте 1993 года)
  • IMAP4 (переименованный IMAP2bis)

Сообщения и их атрибуты

IMAP работает только с сообщениями и не требует каких-либо пакетов со специальными заголовками.

Каждое сообщение имеет несколько связанных с ним атрибутов. Эти атрибуты могут быть определены индивидуально или совместно с другими атрибутами.

Каждому сообщению ставится в соответствие 32-битовый код, который при использовании совместно с уникальным идентификатором образует 64-битовую последовательность, гарантирующую однозначную идентификацию сообщения в почтовом ящике. Чем позже сообщение пришло, тем больше его UID.

UID ассоциируется с почтовым ящиком и посылается в виде кода uidvalidity отклика (ok) на фазе выбора почтового ящика. Если UID из предыдущей сессии по какой-то причине не может быть использован, UID должен быть инкрементирован.

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

Порядковый номер сообщения

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

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

Флаги сообщения

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

Системным флагом является флаг, имя которого определено в спецификации протокола. Все системные флаги начинаются с символа \ .

В настоящее время определены следующие системные флаги:

  • \seen — сообщение прочитано
  • \answered — на сообщение отправлен ответ
  • \flagged — сообщение отмечено как «важное»
  • \deleted — сообщение отмечено как удаленное
  • \draft — сообщение отмечено как черновик
  • \recent — недавнее сообщение (впервые появилось в ящике в ходе текущей сессии)

Внутренние дата и время сообщения на сервере

Время и дата получения сообщения. В случае доставки сообщения посредством протокола SMTP — дата и время доставки конечному адресату. Для сообщений, доставленных командой копирования — внутренняя дата и время отправителя сообщения. При использовании команды append — дата и время, заданные параметрами команды.

Прочие атрибуты

  • размер сообщения — число октетов в сообщении.
  • структура конверта сообщения.
  • структура тела сообщения

Взаимодействие клиента и сервера

Соединение IMAP 4.1 подразумевает установление связи между клиентом и сервером. Клиент посылает серверу команды, сервер клиенту — данные и уведомления о статусе выполнения запроса. Все сообщения, как клиента, так и сервера имеют форму строк, завершающихся специальной последовательностью.

Любая процедура начинается с команды клиента. Любая команда клиента начинается с префикса-идентификатора (обычно короткая буквенно-цифровая строка, например, A0001 , A0002 и т. д.), называемого меткой (tag). Для каждой команды клиент генерирует свою метку.

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

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

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

Данные, передаваемые сервером клиенту, а также статусные отклики, которые не указывают на завершение выполнения команды, имеют префикс * и называются непомеченными откликами.

Данные могут быть отправлены сервером в ответ на команду клиента или по собственной инициативе. Формат данных не зависит от причины отправки.

Отклик указывает на удачное/неудачное выполнение операции. Он использует ту же метку, что и команда клиента, запустившая процедуру. Таким образом, если осуществляется более чем одна команда, метка сервера указывает на команду, вызвавшую данный отклик. Имеется три вида отклика завершения сервера: ok (успешное выполнение), no (неудача), bad (протокольная ошибка, например, не узнана команда или зафиксирована синтаксическая ошибка).

Протокольный приемник клиента IMAP 4.1 читает строку отклика от сервера и предпринимает действия в соответствии с первым символом * или + .

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

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

Сервер IMAP 4.1 находится в одном из четырёх состояний.

Большинство команд можно использовать только в определенных состояниях.

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

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

В состояние выбора система попадает, когда успешно осуществлен выбор почтового ящика.

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

  • (1) Соединение без предварительной аутентификации
  • (2) Соединение с предварительной аутентификацией
  • (3) Соединение отвергнуто
  • (4) Успешное завершение команды LOGIN или AUTHENTICATE
  • (5) Успешное завершение команды SELECT или EXAMINE
  • (6) Выполнение команды CLOSE или неудачная команда SELECT или EXAMINE
  • (7) Выполнение команды LOGOUT , закрытие сервера, или прерывание соединения

АйТи бубен

Инструменты пользователя

Инструменты сайта

Содержание

Команды IMAP

Протокол IMAP (Internet Mail Access Protocol) описывается в RFC 2060.

В отличии от POP3, который просто скачивает входящие письма и сохраняет их локально, с IMAP вы работаете с почтой непосредственно на сервере

Как и POP3, протокол IMAP использует концепцию клиент-сервер с набором команд. С помощью команд осуществляется передача сообщений электронной почты от сервера клиенту. Клиент устанавливает для этой цели TCP-соединение с портом 143 на сервере. Далее сервер должен ответить специальным сообщением-приглашением.

В строке 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. Если на сервере не поддерживается метод проверки подлинности, предложенный клиентом, он включает в свой ответ отрицательное слово NO. После этого клиент должен продолжить переговоры по согласованию метода проверки подлинности. Если все попытки определить метод проверки подлинности потерпели неудачу, то клиент предпринимает попытку зарегистрироваться на сервере посредством команды LOGIN. Пример сеанса с применением AUTHENTICATE:

В строках 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

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

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

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

Команда SELECT

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

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

Команда CREATE

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

Илон Маск рекомендует:  Case средства jam5 1 2 jam

Команда DELETE

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

Команда RENAME

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

Команда LIST

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

Здесь 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 следующий:

Команда CHECK

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

Команда CLOSE

Команда CLOSE полностью соответствует своему названию — она закрывает почтовый ящик.

Действие команды CLOSE четко прослеживается на только что открытом новом почтовом ящике. Открытый почтовый ящик закрывается также с помощью команды LOGOUT. Команда CLOSE не имеет параметров.

Команда EXPUNGE

Ответ сервера на команду EXPUNGE представляет собой отчет о новом состоянии почтового ящика.

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

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

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

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

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

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

Команда FETCH

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

Команда STORE

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

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

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

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

Команда COPY

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

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

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

Команда CAPABILITY

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

Команда NOOP

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

Команда LOGOUT

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

Протоколы электронной почты: POP3, IMAP4, SMTP

В этой статье рассмотрены наиболее часто используемые протоколы электронной почты в Интернете — POP3, IMAP и SMTP. Каждый из них имеет определенную функцию и способ работы. В содержании статьи разъясняется, какая конфигурация лучше всего подходит для конкретных потребностей пользователя при использовании e-mail-клиента. А также раскрывается ответ на вопрос о том, какой протокол поддерживает электронную почту e-mail.

Что такое POP3?

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

По умолчанию протокол POP3 работает на двух портах:

порт 110 — это незашифрованный порт POP3;

порт 995 — его нужно использовать, если вы хотите безопасно подключиться к POP3.

Что такое IMAP?

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

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

Протокол IMAP работает на двух портах:

порт 143 — это незашифрованный порт IMAP по умолчанию;

порт 993 — его необходимо использовать, если вы хотите безопасно подключиться с помощью IMAP.

Что такое SMTP?

Протокол Simple Mail Transfer Protocol (SMTP) — это стандартный протокол для отправки электронной почты через Интернет.

SMTP работает в трех портах:

порт 25 — это незашифрованный порт SMTP по умолчанию;

порт 2525 — он открывается на всех серверах SiteGround, если порт 25 фильтруется (например, вашим интернет-провайдером), и вы хотите отправлять незашифрованные электронные письма с помощью SMTP;

порт 465 — он используется, если вы хотите безопасно отправлять сообщения с помощью SMTP.

По каким протоколам происходит обмен электронной почтой? Понятия и термины

Термин «сервер электронной почты» относится к двум серверам, необходимым для отправки и получения писем, то есть к SMTP и POP.

Сервер входящей почты — это сервер, связанный с вашей учетной записью адреса электронной почты. Для нее не может быть более одного входящего почтового сервера. Для доступа к входящим сообщениям необходим почтовый клиент — программа, которая может получать электронную почту из учетной записи, позволяя пользователю читать, пересылать, удалять и отвечать на сообщения. В зависимости от вашего сервера, вы можете использовать выделенный почтовый клиент (например, Outlook Express) или веб-браузер. Так, Internet Explorer применяют для доступа к учетным записям на основе электронной почты. Письма хранятся на сервере входящей почты до его загрузки. После того, как вы загрузили свою почту с почтового сервера, сделать повторно это будет нельзя. Чтобы успешно загрузить данные, необходимо ввести правильные настройки в электронной почтовой программе. Большинство входящих почтовых серверов используют один из следующих протоколов: IMAP, POP3, HTTP.

Исходящий почтовый сервер (SMTP)

Это сервер, используемый только для отправки писем (для переноса их из вашей почтовой клиентской программы в приемник). Большинство исходящих почтовых серверов используют SMTP-протокол (Simple Mail Transfer Protocol) для отправки корреспонденции. В зависимости от ваших сетевых параметров сервер исходящей почты может принадлежать вашему интернет-провайдеру или серверу, на котором вы настраиваете свою учетную запись. В качестве альтернативы вы можете использовать SMTP-сервер на основе подписки, который позволит вам отправлять электронные письма с любой учетной записи. Из-за проблем со спамом большинство исходящих почтовых серверов не позволяют отправлять электронные письма, если вы не вошли в свою сеть. Сервер с открытым ретранслятором позволит вам использовать его для отправки электронных писем, независимо от того, принадлежите ли вы к его сетевой группе или нет.

Порты электронной почты

Для сетей порт означает конечную точку логического соединения. Номер порта определяет его тип. Ниже перечислены порты электронной почты по умолчанию:

безопасный SMTP (SSMTP) — порт 465;

безопасный IMAP (IMAP4-SSL) — порт 585;

IMAP4 через SSL (IMAPS) — порт 993;

Secure POP3 (SSL-POP) — порт 995.

Протоколы электронной почты: IMAP, POP3, SMTP и HTTP

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

Протокол IMAP

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

Протокол POP3

Протокол передачи электронной почты POP (Post Office Protocol 3) обеспечивает простой, стандартизированный способ доступа пользователей к почтовым ящикам и загрузки сообщений на их компьютеры.

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

Протокол SMTP

Протокол SMTP (Simple Mail Transfer Protocol) используется агентом передачи почты (MTA) для доставки электронных сообщений на определенный сервер получателя. SMTP можно использовать только для отправки электронных писем, а не для их получения. В зависимости от настроек вашей сети или интернет-провайдера вы можете использовать SMTP-протокол только в определенных условиях.

Протоколы HTTP

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

Управляемые передачи файлов и сетевые решения

Ваша способность отправлять и получать электронную почту в основном обусловлена ​тремя протоколами TCP. Ими являются SMTP, IMAP и POP3.

Начнем с SMTP, потому что его основная функция отличается от двух других. Протокол SMTP, или Simple Mail Transfer Protocol, в основном используется для отправки электронной почты от почтового клиента (например, Microsoft Outlook, Thunderbird или Apple Mail) на сервер электронной почты. Он также используется для ретрансляции или пересылки почтовых сообщений с одного почтового сервера на другой. Это необходимо в случае, если у отправителя и получателя есть разные поставщики услуг электронной почты.

SMTP, который указан в RFC 5321, использует порт 25 по умолчанию. Он также может использовать порт 587 и порт 465. Последний, который был представлен как порт выбора для безопасного SMTP (a.k.a. SMTPS), считается устаревшим. Но на самом деле он по-прежнему используется несколькими поставщиками почтовых услуг.

Протокол почтового отделения, или POP, используется для извлечения сообщений электронной почты с почтового сервера на e-mail-клиент. Последняя версия, которая широко используется, — это версия 3, отсюда и термин «POP3».

POP, версия 3, указанная в RFC 1939, поддерживает расширения и несколько механизмов аутентификации. Функции проверки подлинности необходимы, чтобы злоумышленники не получали доступ к сообщениям пользователей.

Клиент POP3 получает электронную почту следующим образом:

подключается к почтовому серверу на порту 110 (или 995 для соединений SSL/TLS);

извлекает сообщения электронной почты;

удаляет копии сообщений, хранящихся на сервере;

отключается от сервера.

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

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

Логика работы (настройки imap4):

подключается к почтовому серверу через порт 143 (или 993 для соединений SSL / TLS);

извлекает сообщения электронной почты;

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

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

Выбор между IMAP и POP3

Поскольку основная функция SMTP принципиально отлична, дилемма выбора лучшего протокола обычно включает только IMAP и POP3.

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

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

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

Например, если вы читаете сообщения A, B и C, то хотите, чтобы они также были помечены как «прочитанные» на других устройствах. Если вы удалили письма B и C, то захотите, чтобы те же сообщения удалялись из вашего почтового ящика на всех гаджетах. Все эти синхронизации могут быть достигнуты только в том случае, если вы используете IMAP.

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

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

Илон Маск рекомендует:  Что такое код printer_delete_pen

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

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

Однако если все сообщения на сервере должны загружаться каждый раз, то POP3 будет работать гораздо быстрее.

Как вы можете увидеть, каждый из описываемых протоколов имеет свои преимущества и недостатки. Вам решать, какие функции или возможности важнее.

Также желаемый способ доступа к e-mail-клиенту определяет предпочтительность протокола. Пользователи, работающие только с одной машины и использующие веб-почту для доступа к своим новым электронным письмам, оценят POP3.

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

Спам-брандмауэры с SMTP, IMAP и POP3

Большинство брандмауэров для спама имеют дело только с протоколом SMTP и защищают его. Серверы отправляют и получают электронную почту SMTP, и они будут проверяться спамом-брандмауэром на шлюзе. Однако некоторые брандмауэры для спама дают возможность защищать POP3 и IMAP4, когда внешним пользователям нужны эти службы для доступа к их электронной почте.

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

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

IMAP (Internet Message Access Protocol)

IMAP
Международный стандарт: 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

  • Original IMAP
  • IMAP2
  • IMAP3
  • IMAP2bis
  • IMAP4
  • IMAP4rev1

Преимущества IMAP над POP3

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

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

Благодаря системе флагов, определенной в IMAP4, клиент может отслеживать состояние сообщения (прочитано, отправлен ответ, удалено и т. д.); данные о флагах хранятся на сервере. Клиенты IMAP4 могут создавать, переименовывать и удалять ящики и перемещать сообщения между ящиками. Кроме того, можно использовать расширение IMAP4 Access Control List для управления правами доступа к ящикам.

Поиск сообщений происходит на стороне сервера. IMAP4 имеет явный механизм расширения.

Недостатки IMAP

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

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

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

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

Общие сведения

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

Символ, используемый в качестве иерархического разделителя, может различаться в зависимости от используемого на сервере программного обеспечения. Обычно это косая черта: / , если сервер работает под управлением операционной системы, совместимой с UNIX , обратная косая черта: \ для операционной системы Windows и точка для имен групп новостей USENET.

Допускается использование различных пространств имен почтовых ящиков и, соответственно, разных иерархических разделителей. Например, если сервер IMAP предоставляет доступ к ящикам, расположенным в каталогах файловой системы UNIX и к группам новостей USENET , то в первом случае в качестве иерархического разделителя используется косая черта, а во втором – точка. Чтобы использовать и различать разные пространства имен на одном сервере IMAP , имена, принадлежащие каждому из используемых пространств, должны начинаться с некоторого префикса, обычно начинающегося символом «#». Естественно, запросы, в которых путь к ящику начинается с одного префикса, будут давать отличные результаты от таких же запросов, начинающихся с другого префикса. Используемое по умолчанию пространство имен может префикса не иметь.

Клиент может выяснить, какие именно пространства имен для почтовых ящиков каких типов поддерживаются данным сервером IMAP , если сервер поддерживает расширение NAMESPACE. Префикс и иерархический разделитель конкретного имени почтового ящика или каталога можно выяснить при помощи команды LIST.

Состояния сервера

Сервер IMAP ожидает соединения от клиентов на порту TCP 143. После установления соединения сервер посылает свое приветствие клиенту, и начинается диалог, в котором клиент посылает серверу команды, а сервер сообщает о результатах их выполнения или присылает затребованную клиентом информацию. Как и сеанс POP3, сеанс IMAP делится на несколько состояний ( states ). Допустимый набор команд зависит от текущего состояния сеанса. Сеанс может находиться в одном из следующих состояний:

  • Неаутентифицированное состояние
  • Аутентифицированное состояние
  • Выбранное состояние
  • Состояние выхода
  1. Соединение без предварительной аутентификации
  2. Соединение с предварительной аутентификацией
  3. Отвергнутое соединение
  4. Успешная аутентификация
  5. Успешное выполнение команды SELECT или EXAMINE
  6. Команда CLOSE или неудачное завершение команды SELECT или EXAMINE
  7. Команда LOGOUT или потеря связи

Команды протокола IMAP

Команды клиента и ответы сервера IMAP

Команда клиента состоит из идентификатора (ярлыка) – короткой строкой, состоящей из букв и цифр, не повторяющейся в других командах в течение всего сеанса. За ярлыком следует сама команда и ее аргументы. Регистр символов в названиях команд, как и в большинстве аргументов, как правило, не имеет значения.

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

Все ответы сервера начинаются с метки, после которой следует отделенный пробелом текст.

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

  • OK (успешное выполнение)
  • NO (невыполнение)
  • BAD (ошибка в команде)

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

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

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

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

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

Сервер может передавать литерал, не дожидаясь разрешения клиента, клиент, прежде чем передавать литерал, должен дождаться разрешения – строки, начинающейся с метки «+». Например:

Команды, допустимые при любом состоянии сеанса IMAP

CAPABILITY

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

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

LOGOUT

Команды неаутентифицированного состояния

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

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

STARTTLS

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

LOGIN

LOGIN регистрационное_имя_пользователя пароль

Аутентификация при помощи регистрационного имени и пароля, передаваемых открытым текстом.

AUTHENTICATE

Передача зашифрованных аутентификационных данных с использованием SASL.

Команды аутентифицированного состояния

В аутентифицированном состоянии клиент производит различные манипуляции с почтовыми ящиками.

SELECT

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

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

EXAMINE

Аналогично команде SELECT , но почтовый ящик открывается только для чтения.

CREATE

Создает новый почтовый ящик или каталог.

Если объект создается не в корневом каталоге, то надо указать путь к нему.

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

DELETE

Удаляет указанный почтовый ящик. Эта же команда удаляет также и каталоги, если они не содержат почтовые ящики.

RENAME

RENAME имя_ящика новое_имя_ящика

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

SUBSCRIBE

Почтовый ящик помечается как «активный». Эта пометка используется для вывода списка почтовых ящиков при помощи команды LSUB.

UNSUBSCRIBE

Снимает с почтового ящика пометку «активный». Эта пометка может быть снята с почтового ящика только при помощи команды UNSUBSCRIBE. Даже если ящик больше не существует, это не может само по себе стать причиной снятия пометки «активный».

LIST путь_к_ящику имя_ящика

Возвращает список каталогов и почтовых ящиков, соответствующих указанным аргументам.

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

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

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

RFC 3501 предусматривает четыре атрибута:

  • \Noinferiors – объект нижнего уровня иерархии – почтовый ящик, не каталог
  • \Noselect – объект – каталог, он не может быть выбран командой SELECT
  • \Marked – почтовый ящик отмечен как представляющий интерес, это означает, что со времени последнего обращения к ящику туда были добавлены новые сообщения
  • \Unmarked – со времени последнего обращения в почтовый ящик не поступило новых сообщений

В описанном в RFC 3348 расширении CHILDREN предусмотрены еще два атрибута, позволяющие определить, содержит ли каталог почтовые ящики или подкаталоги:

  • \HasChildren – каталог содержит почтовые ящики или подкаталоги;
  • \HasNoChildren – объект не содержит почтовых ящиков или подкаталогов, доступных пользователю, аутентифицированному в данном сеансе.

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

Если оба аргумента команды LIST пустые, то сервер возвращает только используемый по умолчанию иерархический разделитель.

LSUB путь_к_ящику имя_ящика

Команда LSUB аналогична команде LIST , но она возвращает только имена почтовых ящиков с пометкой «активный».

STATUS

STATUS имя_ящика (имена_элементов)

Возвращает запрошенные элементы информации об указанном почтовом ящике. Имена элементов информации разделяются пробелами и все вместе заключаются в скобки. Предусмотрены следующие имена элементов информации:

  • MESSAGES – общее количество сообщений в ящике
  • RECENT – количество новых сообщений
  • UIDNEXT –уникальный идентификатор, который изменяется всякий раз, когда в почтовый ящик помещается новое сообщение
  • UIDVALIDITY – уникальный идентификатор почтового ящика
  • UNSEEN – количество сообщений, не помеченных как прочитанные

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

Добавляет сообщение в конец указанного почтового ящика. В качестве аргументов указываются имя ящика, флаги сообщения (не обязательно), метка времени (не обязательно) и само сообщение – заголовок и тело.

Имеются следующие флаги сообщений:

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

Если в команде указаны флаги, то они устанавливаются для добавляемого сообщения. В любом случае для сообщения устанавливается флаг \Recent.

Если в команде задана метка времени, то это время будет установлено в качестве времени создания сообщения, в противном случае за время создания принимается текущее время.

Поскольку сообщение состоит не из одной строки, используются литералы.

Команды выбранного состояния

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

CHECK

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

CLOSE

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

EXPUNGE

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

SEARCH кодировка_символов критерии_поиска

Поиск в выбранном почтовом ящике сообщений, отвечающих указанным критериям поиска.

Необязательный первый аргумент команды состоит из слова «CHARSET» и названия кодировки, используемой в критериях поиска. Кодировку нужно указывать, только если она отличается от стандартной US-ASCII.

Второй аргумент содержит один или более критериев поиска.

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

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

FETCH

FETCH х:у имя_элемента_сообщения_или_макрос

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

Во втором аргументе перечисляются запрашиваемые информационные элементы.

COPY х:у имя_ящика

Копирует сообщения с номерами от х до у из текущего почтового ящика в указанный почтовый ящик.

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

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

IMAP: трудности перехода

Какие грабли зарыты в IMAP

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

За подробностями — добро пожаловать под кат.

Нынешний запуск IMAP — наш второй подход к снаряду. В прошлый раз мы взяли сервер Dovecot и попробовали заточить его под себя. Результат нас не устроил: с нашими нагрузками и нашей инфраструктурой он сочетался плохо. В этот раз мы решили выбрать другой путь, и написали собственное решение.

IMAP мы запустили в мае, но анонсировали только в июне. Фактически, майская аудитория — это наши сотрудники и те пользователи, у которых клиенты автоматически определили наличие IMAP в нашей Почте и подключили к нему новые добавленные аккаунты.

Трудности, специфичные для протокола IMAP

1. Громоздкость самого протокола

Первая версия протокола IMAP появилась в 1986 году. В данный момент актуален стандарт IMAP версии 4rev1, который был обновлен в 2003 году. За такой долгий срок стандарт существенно разросся: его текущая версия насчитывает порядка 200 страниц.

Илон Маск рекомендует:  Что такое код disable

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

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

Чтобы побороть историческое наследие, нам пришлось реализовать несколько расширений. Одно из них — UID+: когда мы копируем или добавляем письмо, мы возвращаем ID нового письма, которое появилось на сервере в результате копирования или добавления. Это позволяет нам сэкономить на ресурсоемкой операции поиска, которую приходилось проводить клиенту, чтобы распознать, какое именно письмо было добавлено.

2. Отсутствие стандартного паттерна работы с сервером

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

Более половины приходится на долю клиентов под устройства Apple: причина в том, что у них хорошо работает автоопределение IMAP. Outloook же, напротив, по умолчанию работает по POP3, и настраивать IMAP нужно руками.

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

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

3. Количество одновременных сессий

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

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

4. Невозможность однозначно идентифицировать клиент

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

5. Отсутствие команды перемещения сообщений

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

Трудности, связанные с адаптацией текущего хранилища писем и индексов

1. Идентификация сообщений

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

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

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

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

2. Необходимость оптимально возвращать информацию о MIME-структуре письма

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

Сейчас мы кэшируем до 50 сообщений. Почему не 2-3? Дело в том, что некоторые клиенты сначала запрашивают структуру письма, а потом тело, причем сразу для нескольких сообщений; максимальное число писем в такой «пачке» обычно составляет 50 штук.

3. Оптимальная отдача частей письма

Часто клиенты просят лишь текстовые части письма, которые могут находиться в конце самого сообщения. Для отображения сниппетов клиенты могут просить текстовые части сразу у 50-200 писем. Читать весь файл сообщения целиком (и обрабатывать 10 МБ письма для того, чтобы отдать 10 КБ текста) при этом не хочется; использовать индекс для определения позиции части внутри файла при каждом запросе также было бы накладно. В этой ситуации также спасает кэш структуры письма.
Преимущества такого подхода особенно наглядны тогда, когда клиент подгружает сниппеты для нескольких десятков писем: если бы мы не использовали кэш структуры, то для этого приходилось бы просмотреть много мегабайт и пожертвовать скоростью.

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

4. Особенности работы некоторых клиентов

Некоторые клиенты не полностью соответствуют стандарту RFC: например, стандартные клиенты Android версий 2.2 — 2.3 не могут корректно отображать письма без возврата некоторых необязательных полей. Основная трудность заключалась в том, чтобы определить, какие именно поля каждый из таких клиентов считает для себя обязательными: приходилось решать это методом перебора.

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

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

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

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

Ошибка ox800ccc0f outlook

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

Задача ‘Синхронизация папок с подпиской для сообщила об ошибке (0x800CCC0F) : ‘Outlook не может синхронизировать подписанные папки для . Ошибка: Сервер неожиданно прервал соединение TCP/IP. Если это сообщение появится повторно, обратитесь к администратору сервера или поставщику услуг Интернета.’

Что такое команды Subscribe и Unsubscribe в Imap4req1?

Что такое использование команд Subscribe и Unsubscribe в Imap4req1? Я проверил RFC 3501, но я не мог понять его использования. Что произойдет, когда я напишу следующие команды

сервер будет обрабатывать эти почтовые ящики как отдельные?

пожалуйста, проверьте ниже один раз, и отличить

Создан 25 фев. 14 2014-02-25 12:33:10 Pyare

Непонятно, что именно вы спрашиваете. Попробуйте еще раз и по-другому. – Jan Kundrát 25 фев. 14 2014-02-25 16:54:27

1 ответ

Они изменяют вывод команды LSUB . Вот и все. SUBSCRIBE добавляет папки к выходу команды LSUB . UNSUBSCRIBE удалит их с выхода команды LSUB . То есть LSUB показывает только подписанные папки.

LIST всегда будет показывать все папки.

Например, начиная со всех папок с подпиской:

Теперь давайте отписываться INBOX.Sent :

Все это отличается тем, что INBOX.Sent был удален с выхода LSUB. Обратите внимание, что вывод LIST вообще не будет затронут.

Теперь давайте положить его обратно:

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

Создан 25 фев. 14 2014-02-25 14:15:18 Max

hi max, i обновленный выше вопрос, пожалуйста, сообщите мне разницу до и после ПОДПИСАТЬСЯ между LIST и LSUB – Pyare 25 фев. 14 2014-02-25 14:26:08

Обновлено. Я не совсем уверен, будет ли SUBSCRIBE работать над INBOX. Но если вы ‘CREATE’ папку, вы должны быть в состоянии подписаться и отказаться от подписки на нее и посмотреть результаты изменения LSUB. – Max 25 фев. 14 2014-02-25 20:12:28

Но, простите, max, я не мог видеть разницу для команды SUBSCRIBE между LIST и LSUB, для меня она отображается одинаково. Как вы сказали, я создал новый почтовый ящик и проверил. все же и LIST AND LSUB дают тот же результат . Можете ли вы дать мне пример, чтобы действительно понять использование этих двух команд? – Pyare 26 фев. 14 2014-02-26 04:12:53

У вас есть рабочий список? все, что я пытаюсь сделать неправильно? – Pyare 26 фев. 14 2014-02-26 04:14:09

Там вы идете. Вход и выход. Я думаю, вы ожидаете, что SUBSCRIBE что-то изменит, но ваша папка уже подписана, поэтому ничего не меняется. – Max 26 фев. 14 2014-02-26 22:32:50

Если этот ответ отвечает вашим потребностям, можете ли вы его принять? – Max 05 мар. 14 2014-03-05 14:59:35

Что Такое POP3, SMTP и IMAP

Введение

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

Шаг 1 — Что такое POP3 и какие у него порты?

POP3 (протокол почтового отделения версия 3) часто используется для связи с удаленным сервером электронной почты и загрузки сообщений на локальный почтовый клиент с последующим удалением его на сервере, к примеру Outlook, Thunderbird, Windows Mail, Mac Mail и т.д. Однако обычно почтовые клиенты предлагают выбор – оставлять или нет копии сообщений на сервере. Если вы используете несколько устройств для отправки сообщений, то рекомендуется оставлять эту функцию включенной, в противном случае, на другом устройстве у вас не будет доступа к отправленным сообщениям, которые не были сохранены на удаленном сервере. Также стоит отметить, что POP3 – протокол работающий только в одном направлении, это означает, что данные берутся с удаленного сервера и отправляются на локальный клиент.

Порты POP3, по умолчанию являются такими:

Порт 110 – порт без шифрования

Порт 995 – порт SSL/TLS, также известный как POP3S

Шаг 2 — Различия между POP3 и IMAP, и какие порты у IMAP?

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

Порты IMAP, по умолчанию являются такими:

  • Порт 143 – порт без шифрования
  • Порт 993 – порт SSL/TLS, также известный как IMAPS

Шаг 3 — SMTP, протокол для исходящей связи по электронной почте

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

  • Порт 25 – порт без шифрования
  • Порт 465 – порт SSL/TLS, также известный как SMTPS

Заключение

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

Что значит «подписаться» на папку IMAP?

Я использую Thunderbird с Gmail IMAP, и есть эта опция «Подписка» для папок. Что это значит?

5 Solutions collect form web for “Что значит «подписаться» на папку IMAP?”

Папки, на которые вы подписаны, – это те, которые отображаются в Thunderbird. Он подписывает каждую папку, которую он находит при первой настройке учетной записи, и любая папка, которую вы добавляете через Thunderbird, также автоматически подписывается. Я предполагаю, что этот параметр существует, поэтому если вы должны добавить папку через другое приложение или приложение webmail-ish, и вы хотите, чтобы новая папка отображалась, вы можете просто включить ее.

Возможно, эта ссылка прояснит ситуацию. Вот цитата:

Ваш почтовый клиент IMAP (например, Thunderbird) отобразит папки вашей учетной записи, на которые вы подписаны.

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

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

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

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

Уже есть несколько очень хороших ответов на этот вопрос (которые я уже рассмотрел), но я подумал, что добавлю к ним ответ, в котором подробно описаны соответствующие команды, указанные протоколом IMAP, RFC 3501 .

Подписка на папки

В IMAP подписки используются для обозначения того, какие папки должны отображаться клиентами IMAP. Некоторые системные папки могут предоставлять функциональные возможности, но не содержать электронные письма, которые представляют интерес для пользователя, например, сервер Exchange содержит такие папки, как Контакты , Журнал , Проблемы синхронизации ).

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

  • Команда LIST перечисляет все папки.
  • LSUB перечисляет только подписанные папки.

На выход команды LSUB влияют две команды:

  • SUBSCRIBE добавляет папки в список, отображаемый командой LSUB .
  • UNSUBSCRIBE удаляет папки из списка, отображаемого командой LSUB .

См. Что такое использование команд Subscribe и Unsubscribe в IMAP4? Для примеров эффектов команд подписки.

Также обратите внимание, что папки отмечены как подписанные на сервере IMAP, так что все клиенты видят один и тот же список папок. См. Подписывается ли IMAP (un) подписка на работу через почтовые клиенты? ,

Я считаю, что он позволяет вам подписаться на папку на сервере, там, синхронизируя содержимое Whats на сервере с тем, что находится в клиенте Thunderbird.

2020-01-26: Thunderbird 45.5.1: предыдущий ответ, начиная с File, был для меня ключом.

С определенной учетной записи: Файл | Подписывает результаты в список папок, затем: Gmail затем из списка папок: отметьте или снимите флажки желаемых или нежелательных папок. В моем случае это устраняло важные и все.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL