sonyps4.ru

Какой тип сервера использует imap. Что такое IMAP и POP? Что такое IMAP

Когда появились первые устройства, позволяющие разъединять сеть на несколько доменов коллизий (по сути фрагменты ЛВС, построенные на hub-ах), они были двух портовыми и получили название мостов (bridge-ей). По мере развития данного типа оборудования, они стали многопортовыми и получили название коммутаторов (switch -ей). Некоторое время оба понятия существовали одновременно, а поздее вместо термина "мост" стали применять "коммутатор".

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

Благодаря тому, что коммутаторы могут управлять трафиком на основе протокола канального уровня (Уровня 2) модели OSI, он в состоянии контролировать МАС адреса подключенных к нему устройств и даже обеспечивать трансляцию пакетов из стандарта в стандарт (например Ethernet в FDDI и обратно). Особенно удачно результаты этой возможности представлены в коммутаторах Уровня 3, т.е. устройствах, возможности которых приближаются к возможностям маршрутизаторов.

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

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

Спасибо за внимание!

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

      1. Режимы коммутации

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

    С промежуточным хранением (Store and Forward). Коммутатор читает всю информацию во фрейме, проверяет его на отсутствие ошибок, выбирает порт коммутации и после этого посылает в него фрейм.

    Сквозной (cut-through). Коммутатор считывает во фрейме только адрес назначения и после выполняет коммутацию. Этот режим уменьшает задержки при передаче, но в нём нет метода обнаружения ошибок.

    Бесфрагментный (fragment-free) или гибридный. Этот режим является модификацией сквозного режима. Передача осуществляется после фильтрации фрагментов коллизий (фреймы размером 64 байта обрабатываются по технологии store-and-forward, остальные по технологии cut-through).

      1. Возможности и разновидности коммутаторов

Коммутаторы подразделяются на управляемые и неуправляемые (наиболее простые). Более сложные коммутаторы позволяют управлять коммутацией на канальном (втором) и сетевом (третьем) уровне модели OSI. Обычно их именуют соответственно, например Layer 2 Switch или просто, сокращенно L2. Управление коммутатором может осуществляться посредством протокола Web-интерфейса, SNMP, RMON (протокол, разработанный Cisco) и т. п. Многие управляемые коммутаторы позволяют выполнять дополнительные функции: VLAN, QoS, агрегирование, зеркалирование. Сложные коммутаторы можно объединять в одно логическое устройство - стек, с целью увеличения числа портов (например, можно объединить 4 коммутатора с 24 портами и получить логический коммутатор с 96 портами) .Кроме того, необходимо дать определение и другим сетевым устройствам, используемым в проектировании данной сети.

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

Трансивер позволяет станции передавать в и получать из общей сетевой среды передачи. Дополнительно, трансиверы Ethernet определяют коллизии в среде и обеспечивают электрическую изоляцию между станциями. 10Base2 и 10Base5 трансиверы подключаются напрямую к среде предачи (кабель) общая шина. Хотя первый обычно использует внутренний трансивер, встроенный в схему контроллера и Т-коннектор для подключения к кабелю, а второй (10Base5) использует отдельный внешний трансивер и AUI-кабель или трансиверный кабель для подключения к контроллеру. 10BaseF, 10BaseT, FOIRL также обычно используют внутренние трансиверы. Надо сказать, что существуют так же внешние трансиверы для 10Base2, 10BaseF, 10baseT и FOIRL, которые могут отдельно подключаться к порту AUI или напрямую или через AUI-кабель.

      Вывод

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

      Выбор производителя сетевого оборудования

В качестве производителя сетевого оборудования для построения сети была выбрана компания Cisco systems.

В основном для КМ уровня распределения предъявляются следующие требования:

    Наличие нужного количества портов для подключения пользователей и для соединения с оборудованием верхнего уровня (уровня ядра)

    Нужное соотношение трафика, идущего на верхний уровень, к размеру трафика, не выходящего на верхний уровень (от одного порта КМ до другого порта этого же КМ)

    Характеристики надежности, например коэффициент готовности, близкий к 1, например 0.995, и другие характеристики надежности:

    First Hop Redundancy Protocol (FHRP) и/или VRRP

    Gateway Load-Balancing Protocol

    QoS (802.1Q/p) и дополнительные сервисы

В качестве узла здания выберем коммутатор WS-C3750G-12S-S (Catalyst 3750, 1000Base-X 12-ports (SFP), IPB).

Его основные особенности:

    Высокоскоростная маршрутизация трафика: благодаря технологии Cisco Express Forwarding (CEF) серия Catalyst 3750 обеспечивает высокопроизводительную маршрутизацию трафика IP, а также имеет аппаратную поддержку маршрутизации IPv6. Поддерживается большинство протоколов маршрутизации - RIPv1, RIPv2 (в версии ПО SMI и EMI), OSPF, IGRP, EIGRP, BGPv4 (только EMI), а также PBR и протоколы маршрутизации multicast-трафика (только EMI) - PIM-SM, PIM-DM, PIM sparse-dense mode, туннелирование DVMRP.

    Высокая безопасность: поддержка протокола 802.1x, функциональность Identity-Based Networking Services (IBNS), списки доступа для трафика, коммутируемого на втором уровне (VLAN ACL), на третьем и четвертом уровнях (Router ACL), а также Port-based ACLs (PACL). Для обеспечения безопасности при администрировании поддерживаются протоколы SSH и SNMPv3, а также централизованная аутентификация на TACACS+ и RADIUS серверах.

    Поддержка качества обслуживания (QoS) в пределах стека: классификация трафика по полям DSCP или 802.1p (CoS), а также по исходным и конечным MAC, IP адресам или портам TCP/UDP, приоритетная очередность и очередность SRR, WTD, ограничение полосы пропускания, CIR, функция AutoQoS.

    Отличная управляемость: ПО Cisco CMS, поддержка CiscoWorks, поддержка SNMP версий 1, 2, 3, Telnet, RMON, SPAN, RSPAN, NTP, TFTP.

Рис1. Характеристики Catalyst 3750

Характеристики:

    Управляемость - SNMP 1, SNMP 2, RMON 2, SNMP, RMON, Telnet, SNMP 3

    Потребляемая мощность - 42 Вт

    Блок питания - 1 внутренний блок питания

  • Слотов для GBIС - 12 x SFP (mini-GBIC)

    Дополнительные характеристики - Full duplex capability, IP-routing, DHCP support, ARP support, VLAN support,

    IGMP snooping, manageab

В качестве этажных и комнатных узлов был выбран коммутатор Cisco Catalyst 2960.

Интеллектуальные Ethernet-коммутаторы Cisco Catalyst серии 2960 (Cisco Catalyst 2960 Series Intelligent Ethernet Switch) позволяют реализовать расширенные сервисы в локальных сетях крупных и средних предприятий, а также в сетях филиалов. Представители этого семейства автономных коммутаторов с фиксированной конфигурацией обеспечивают подключение рабочих мест на скоростях 10/100 Fast Ethernet и 10/100/1000 Gigabit Ethernet.

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

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

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

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

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

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

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

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

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

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

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

Когда вы будете выбирать программу для себя, то обратите внимание на некоторые параметры таблицы. Например, очень желательно, чтобы ваш почтовый клиент поддерживал параметр «Disconnected use». Это значит, что в этом случае вы сможете использовать почтовую программу, не имея постоянного доступа к Интернету. Вы подсоединитесь к серверу, скачаете новые письма или заголовки, ответите на них, произведете нужные действия с папками, а затем еще раз соединитесь, и изменения совершатся на сервере автоматически. Это очень удобно, когда приходится выходить в Интернет через модем с повременной оплатой соединения, чтобы не увеличивать свои расходы на доступ в Сеть.

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

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

POP3 (протокол почтового отделения версия 3) часто используется для связи с удаленным сервером электронной почты и загрузки сообщений на локальный почтовый клиент с последующим удалением его на сервере, к примеру , Thunderbird , Windows 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 используется исключительно для отправки сообщений.

Порты SMTP:

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

Заключение

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

Базируется на транспортном протоколе TCP и использует порт 143.

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

Для отправки писем используется протокол SMTP .

Цель разработки протокола IMAP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UID

Каждому сообщению ставится в соответствие 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

LOGIN Позволяет клиенту при регистрации на сервере IMAP использовать идентификатор пользователя и пароль в обычном текстовом виде. Это не самый лучший метод, но иногда это единственная возможность подключиться к серверу. AUTHENTICATE Позволяет клиенту использовать при регистрации на сервере IMAP альтернативные методы проверки подлинности. Индивидуальная проверка подлинности пользователей не является обязательной и поддерживается не всеми серверами IMAP. К тому же реализации такой проверки могут различаться в зависимости от сервера. Когда клиент выдает команду AUTHENTICATE , сервер отвечает на неё строкой вызова в кодировке base64 . Далее клиент должен отправить ответ на вызов сервера о проверке подлинности, также закодированный base64. Если на сервере не поддерживается метод проверки подлинности, предложенный клиентом, он включает в свой ответ слово NO . После этого клиент должен продолжить переговоры по согласованию метода проверки подлинности. Если все попытки определить метод проверки подлинности потерпели неудачу, то клиент предпринимает попытку зарегистрироваться на сервере посредством команды LOGIN . CLOSE Закрывает почтовый ящик. Когда почтовый ящик закрыт, то все сообщения, помеченные флагом \DELETED , физически удаляются из него. Не имеет параметров. LOGOUT Завершает сеанс для текущего идентификатора пользователя и закрывает все открытые почтовые ящики. Если какие-либо сообщения были помечены флагом \deleted , то с помощью этой команды они будут физически удалены из почтового ящика. CREATE Создаёт новый почтовый ящик. Имя и местоположение новых почтовых ящиков определяются в соответствии с общими спецификациями сервера. DELETE Применяется к почтовым ящикам. Сервер IMAP при получении этой команды попытается удалить почтовый ящик с именем, указанным в качестве аргумента команды. Сообщения удаляются вместе с ящиками и восстановлению не подлежат. RENAME Изменяет имя почтового ящика. Эта команда имеет два параметра - имя почтового ящика, который требуется переименовать, и новое имя почтового ящика. SUBSCRIBE Добавляет почтовый ящик в список активных ящиков клиента. В это команде используется только один параметр - имя почтового ящика, который нужно внести в список. Почтовый ящик не обязательно должен существовать, чтобы его можно было добавить в список активных ящиков - это позволяет добавлять в список активных ящиков ящики, которые ещё не созданы, или удалять их, если они пусты. UNSUBSCRIBE Удаляет почтовые ящики из списка активных. В ней так же используется один параметр - имя почтового ящика, который удаляется из списка активных ящиков клиента. При этом сам по себе почтовый ящик не удаляется. LIST Получить список всех почтовых ящиков клиента; имеет два параметра. LSUB В отличие от команды LIST используется для получения списка ящиков, активизированных командой SUBSCRIBE . Параметры - такие же, как у LIST . STATUS Формирует запрос о текущем состоянии почтового ящика. Первым параметром для этой команды является имя почтового ящика, к которому она применяется. Второй параметр - это список критериев, по которым клиент хочет получить информацию. Команда STATUS может использоваться для получения информации о состоянии почтового ящика без его открытия с помощью команд SELECT или EXAMINE . Пользователь может получить информацию по критериям:
  • MESSAGES - общее число сообщений в почтовом ящике
  • RECENT - число сообщений с флагом \recent
  • UIDNEXT - идентификатор UID, который будет назначен новому сообщению
  • UIDVALIDITY - уникальный идентификатор почтового ящика
  • UNSEEN - число сообщений без флага \seen
APPEND Добавляет сообщение в конец указанного почтового ящика. В качестве аргументов указываются имя ящика, флаги сообщения (не обязательно), метка времени (не обязательно) и само сообщение - заголовок и тело. Имеются следующие флаги сообщений:
  • \Seen - прочитано
  • \Answered - написан ответ
  • \Flagged - срочное
  • \Deleted - помечено для удаления
  • \Draft - черновик
  • \Recent - новое сообщение, оно поступило в почтовый ящик после окончания прошлого сеанса
Если в команде указаны флаги, то они устанавливаются для добавляемого сообщения. В любом случае для сообщения устанавливается флаг \Recent . Если в команде задана метка времени, то это время будет установлено в качестве времени создания сообщения, в противном случае за время создания принимается текущее время. Поскольку сообщение состоит не из одной строки, используются литералы. Пример: C A003 APPEND saved-messages (\Seen) {247} S + Ready for literal data C Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) C From: Fred Foobar C Subject: afternoon meeting C To: [email protected] C Message-Id: C C Hello Joe, do you think we can meet at 3:30 tomorrow? S A003 OK APPEND completed Расширение MULTIAPPEND , описанное в RFC 3502 , позволяет одной командой добавлять в почтовый ящик несколько сообщений. CHECK Устанавливает контрольную точку в почтовом ящике. Любые операции, такие, например, как запись данных из памяти сервера на его жёсткий диск, должны выполняться при соответствующем состоянии почтового ящика. Именно для проверки целостности почтового ящика после дисковых и других подобных им операций и применяется команда CHECK . Эта команда используется без параметров. EXPUNGE Удаляет из почтового ящика все сообщения, помеченные флагом \DELETED , при этом почтовый ящик не закрывается. Ответ сервера на команду EXPUNGE представляет собой отчёт о новом состоянии почтового ящика. SEARCH Поиск сообщений по критериям в активном почтовом ящике с последующим отображением результатов в виде номера сообщения. Возможен поиск сообщений, в теле которых имеется определённая текстовая строка, или имеющих определённый флаг, или полученных до определённой даты и т. д. FETCH Получить текст почтового сообщения. Команда применяется только для отображения сообщений. В отличие от POP3, клиент IMAP не сохраняет копию сообщения на клиентском ПК. STORE Изменяет информацию о сообщении. COPY Копирует сообщения из одного почтового ящика в другой. UID Используется в связке с командами FETCH , COPY , STORE или SEARCH . С её помощью в этих командах можно использовать реальные идентификационные номера UID вместо последовательности чисел из диапазона номеров сообщений. CAPABILITY Запрос у сервера IMAP информацию о его возможностях. NOOP Команда ничего не делает. Она может применяться для поддержки активности во время сеанса для того, чтобы сеанс не прекратился по таймеру интервала ожидания. Ответ сервера на команду NOOP всегда должен быть положительным. Так как сервер часто в ответе возвращает состояние выполнения той или иной команды, то NOOP вполне можно использовать как триггер для периодического запроса о состоянии сервера.

Ссылки

  • RFC 3501 Internet Message Access Protocol v4rev1 (англ.)
  • The IMAP Connection (англ.)
  • Howto: Configuring KMail with Gmail - IMAP and Disconnected IMAP (англ.)


Загрузка...