Service exchange unit что за прошивка
Работа с почтой на MS Exchange сервере через EWS. Часть 1
Здравствуйте, читатели Хабрахабр!
В рамках серии этих постов я хочу рассказать о такой технологии как EWS и о том, как ее использовать для работы с почтой, хранящейся на серверах MS Exchange 2007 — 2010. Я постараюсь показать, как просто и удобно использовать EWS.
Мы начнем с самого начала, с знакомства с это технологией и создания первого проекта, а закончим более сложными манипуляциями с почтой.
Данный пост является вводным и он, скорее всего, окажется неинтересен тем, кто уже знаком с EWS.
Введение
Exchange Web Services (EWS) — это специальный протокол, разработанный MS, и предназначенный для управления почтой и другими компонентами составляющими MS Exchange. В основе протокола лежит XML. Описание поддерживаемых операций и примеры можно найти здесь.
EWS сравнительно молодая технология, появившаяся в Exchange 2007, и пришедшая на смену протоколу WebDAV. MS вкладывает много усилий в разработку и усовершенствование EWS. Сейчас это мощнейший инструмент, с простым и понятным API, а также с прекрасной документацией, позволяющий решать задачи менеджмента объектов MS Exchange.
Архитектура EWS показана на следующей картинке:
Как видно, EWS размещается на серверах имеющих Client Access Server (CAS) роль. Это роль отвечает за обработку запросов от пользователя, т.е. любые клиента, такие как Outlook, MFCMapi, браузер + OWA и т.д., все они подсоединяются к CAS’у. Запрос от клиентского приложения попадает в IIS, где и находится application имплементирующий функциональность EWS. Т.е. EWS «живет» в IIS и выполняется в отдельном процессе или процессах w3wp.exe (процессы в которых исполняются IIS application pool’ы). Помимо EWS там могут «крутится» и другие приложения, например, OWA, ECP и PowerShell.
EWS выступает в виде прослойки между клиентским запросом и внутренностями Exchange. Когда поступает EWS-запрос от клиентского приложения, то он проксируется во внутренние вызовы Exchange, после чего поступает на Mailbox Server role, где уже и производятся сами операции.
Примечание: Немного о внутреннем устройстве Mailbox роли можно прочитать в моей предыдущей статье.
Общее представление мы получили, можем переходить к программированию.
Разработка
После нажатия далее начнется загрузка reference’ов, и если все пройдет хорошо, вам предложат указать имя этого reference’а, и по окончанию он будет добавлен в проект.
Всё, теперь мы можем попытаться подсоединиться к серверу. И первое, что нужно сделать это получить объект ExchangeServiceBinding, это, пожалуй, самый важный объект в EWS, именно через него будут вызываться все допустимые методы и именно он идентифицирует конкретное подключение на стороне клиента. Для создания данного объекта можно воспользоваться следующим методом:
Примечание: Если сервер использует self-signed сертификат, то соединиться не получится т.к. такой сертификат не пройдет валидацию. В качестве workaround’а можно добавить дополнительный код apply’щий любые сертификаты:
Имея ExchangeServiceBinding можно попытаться сделать что-нибудь полезное, например, отправить сообщение. MSDN подсказывает, что для этого нужно воспользоваться объектом CreateItemType. Для этого напишем следующий метод:
Примечание: В приведенном коде показан самый простой способ отправки сообщения, и мы не видим «мощи» используемых классов, а они предоставляют обширные возможности по кастомизации производимых операций (задание всевозможных свойств, флагов, и т.п.). Подробнее об этом и не только я постараюсь рассказать в следующих статьях.
Вызов этого кода можно сделать так:
Если вам показалось, что код выполнился пугающе долго (у меня порядка 5 секунд), не беспокойтесь, так происходит только при первом вызове. Почти все время занимает инициализация выполняющаяся только один раз. Так же, если это был первый EWS-вызов для сервера, то серверу необходимо произвести инициализацию со своей стороны и создать новый instance w3wp для обработки запроса, а это тоже может занять какое-то время.
Заключение
Мы коротко познакомились с технологией EWS и написали простой пример отправки письма адресату.
Как видно код получается очень кратким и понятным. Документация MS достаточно хорошая и почти всегда с примерами. Если вы программировали на C++ MAPI, то вы оцените на сколько данный способ проще.
Если у вас появится задача написания почтового клиента или любые другие задачи, связанные с удаленной работой над объектами Exchange, я надеюсь, что вы воспользуетесь EWS. т.к. ИМХО данный способ наиболее простой и понятный из всех с которыми мне приходилось работать.
Обзор Exchange служб на Exchange серверах
Во время установки Exchange Server 2016 или Exchange Server 2019 г. установка выполняет набор задач, устанавливая новые службы в Microsoft Windows. Служба это фоновый процесс, который диспетчер служб Windows может запускать при запуске сервера. Службы это исполняемые файлы, предназначенные для независимой работы без вмешательства администраторов. Служба может работать в режиме графического пользовательского интерфейса (GUI) или консоли.
Все предыдущие версии Exchange включали компоненты, реализуемые в виде служб. Каждая роль сервера Exchange Server включает службы, которые входят в состав роли сервера (или могут быть ей необходимы), для выполнения своих функций. Обратите внимание, что некоторые службы становятся активны только при использовании определенных функций.
В разделах в этом разделе описываются различные службы, установленные Exchange 2016 и Exchange 2016 на серверах почтовых ящиков и на транспортных серверах edge. Для служб, отмеченных как необязательные, можно отключить службу, если окажется, что вашей организации не требуются предоставляемые ею функции.
Exchange службы на серверах почтовых ящиков
В приведенной ниже таблице описываются службы Exchange, устанавливаемые на серверах почтовых ящиков.
Имя службы | Короткое имя службы | Описание и зависимости | Тип запуска по умолчанию | Контекст безопасности | Зависимости | Обязательная или необязательная |
---|---|---|---|---|---|---|
Microsoft Exchange Топология Active Directory | MSExchangeADTopology | Предоставляет сведения о топологии Active Directory для служб Exchange. Если работа этой службы будет остановлена, большинство служб Exchange не смогут запускаться. | Автоматическая | Локальная система | Служба совместного доступа к портам Net.TCP | Обязательная |
Обновление средства защиты от нежелательной почты Microsoft Exchange | MSExchangeAntispamUpdate | Предоставляет обновления определений спама для Exchange SmartScreen. Примечание. В ноябре 2016 г. корпорация Майкрософт прекратила выпуск обновлений определения нежелательной почты для фильтров SmartScreen в Exchange и Outlook. Существующие определения нежелательной почты SmartScreen были оставлены на месте, но их эффективность со временем, скорее всего, будет ухудшаться. Дополнительные сведения см. в статье Прекращение поддержки SmartScreen в Outlook и Exchange. | Автоматически | Локальная система | Служба топологии Active DirectoryMicrosoft Exchange | Необязательная |
Аудит соответствия требованиям Microsoft Exchange | MSComplianceAudit | Предоставляет функции аудита Exchange. | Автоматически | Локальная система | Служба топологии Active DirectoryMicrosoft Exchange | Обязательная |
Служба соответствия требованиям Microsoft Exchange | MSExchangeCompliance | Предоставляет узел для служб соответствия требованиям Exchange. | Автоматически | Локальная система | Служба топологии Active DirectoryMicrosoft Exchange | Обязательная |
Служба управления DAG Microsoft Exchange | MSExchangeDagMgmt | Предоставляет возможности управления структурами хранилищ и макетами баз данных для серверов почтовых ящиков в группах обеспечения доступности баз данных. | Автоматически | Локальная система | Служба Exchange Microsoft Active Directory TopologyNet.TCP Port Sharing Service | Обязательная |
Служба диагностики Microsoft Exchange | MSExchangeDiagnostics | Предоставляет агент, отслеживающий работоспособность сервера Exchange Server. | Автоматически | Локальная система | Нет | Обязательная |
Microsoft Exchange EdgeSync | MSExchangeEdgeSync | Реплицирует данные о конфигурации и получателях, передавая их с сервера почтовых ящиков в службы Active Directory облегченного доступа к каталогам (AD LDS) на подписанных пограничных транспортных серверах по защищенному каналу LDAP, а также наоборот. Если у вас нет подписанных пограничных транспортных серверов, можете отключить эту службу. | Автоматически | Локальная система | Служба топологии Active DirectoryMicrosoft Exchange | Необязательная |
Майкрософт Exchange чрезвычайных ситуаций | Смягчение msExchange | Auto применяет важные меры по смягчению Exchange Server безопасности для защиты от известных угроз. | Автоматически | Локальная система | Модуль переописывание URL-адресов IIS | Обязательный |
Интерфейсная служба транспорта Microsoft Exchange | MSExchangeFrontEndTransport | Прокси-подключения SMTP от внешних хостов к транспортной Exchange Microsoft на серверах почтовых ящиков (локальном сервере или удаленных серверах). | Автоматически | Локальная система | Служба топологии Active DirectoryMicrosoft Exchange | Обязательная |
Диспетчер работоспособности Microsoft Exchange | MSExchangeHM | Часть службы управляемой доступности, отслеживающая работоспособность ключевых компонентов на сервере Exchange Server. | Автоматически | Локальная система | Журнал событий WindowsИнструментарий управления Windows (WMI) | Обязательная |
Служба восстановления диспетчера работоспособности Microsoft Exchange | MSExchangeHMRecovery | Часть службы управляемой доступности, которая пытается восстановить неработоспособные компоненты на сервере Exchange Server. | Автоматически | Локальная система | • Windows журнала событий • Windows инструментов управления | Обязательная |
Microsoft Exchange IMAP4 | MSExchangeIMAP4 | Проксирует клиентские подключения IMAP4 служб клиентского доступа (интерфейсных) к фоновой службе IMAP4 на серверах почтовых ящиков. По умолчанию эта служба не работает, поэтому клиенты IMAP4 не смогут подключаться к серверу Exchange Server, пока она не будет запущена. Если у вас нет клиентов IMAP4, можете отключить эту службу. | Вручную | Локальная система | Служба топологии Active DirectoryMicrosoft Exchange | Необязательная |
Внутренняя служба IMAP4 Microsoft Exchange | MSExchangeIMAP4BE | Получает проксированные клиентские подключения IMAP4 от службы клиентского доступа IMAP4 (интерфейсной). По умолчанию эта служба не работает, поэтому клиенты IMAP4 не смогут подключаться к серверу Exchange Server, пока она не будет запущена. Если у вас нет клиентов IMAP4, можете отключить эту службу. | Вручную | Сетевая служба | Служба топологии Active DirectoryMicrosoft Exchange | Необязательная |
Банк данных Microsoft Exchange | MSExchangeIS | Управляет базами данных почтовых ящиков на сервере. Если эта служба остановлена, базы данных почтовых ящиков на сервере недоступны. | Автоматически | Локальная система | • Microsoft Exchange Active Directory Topology • Удаленный вызов процедуры (RPC) • Сервер • Windows журнала событий • Workstation | Обязательная |
Помощники по обслуживанию почтовых ящиков Microsoft Exchange | MSExchangeMailboxAssistants | Выполняет фоновую обработку почтовых ящиков в соответствующих базах данных на сервере. | Автоматически | Локальная система | Служба топологии Active DirectoryMicrosoft Exchange | Обязательная |
Служба репликации почтовых ящиков Microsoft Exchange | MSExchangeMailboxReplication | Обрабатывает операции перемещения и запросы на перемещение почтовых ящиков. | Автоматически | Локальная система | Служба Exchange Microsoft Active Directory TopologyNet.TCP Port Sharing Service | Обязательная |
Служба доставки транспорта почтовых ящиков Microsoft Exchange | MSExchangeDelivery | Получает сообщения SMTP от службы транспорта Microsoft Exchange (на локальных или удаленных серверах почтовых ящиков) и доставляет их в локальную базу данных почтовых ящиков с помощью RPC. | Автоматически | Сетевая служба | Служба топологии Active DirectoryMicrosoft Exchange | Обязательная |
Служба отправки транспорта почтовых ящиков Microsoft Exchange | MSExchangeSubmission | Получает сообщения RPC из локальной базы данных почтовых ящиков и отправляет их по протоколу SMTP в службу транспорта Microsoft Exchange (на локальных или удаленных серверах почтовых ящиков). | Автоматически | Локальная система | Служба топологии Active DirectoryMicrosoft Exchange | Обязательная |
Брокер Exchange уведомлений Майкрософт (только Exchange 2016 г.) | MSExchangeNotificationsBroker | Предоставляет уведомления Exchange локальным и удаленным процессам Exchange. | Автоматически | Локальная система | Служба топологии Active DirectoryMicrosoft Exchange • Служба общего доступа к портам Net.TCP | Обязательная |
Microsoft Exchange POP3 | MSExchangePOP3 | Проксирует клиентские подключения POP3 служб клиентского доступа (интерфейсных) к фоновой службе IMAP4 на серверах почтовых ящиков. По умолчанию эта служба не работает, поэтому клиенты POP3 не смогут подключаться к серверу Exchange Server, пока она не будет запущена. | Вручную | Сетевая служба | Служба топологии Active DirectoryMicrosoft Exchange | Необязательная |
Внутренняя служба POP3 Microsoft Exchange | MSExchangePOP3BE | Получает проксированные клиентские подключения POP3 от службы клиентского доступа POP3 (интерфейсной). По умолчанию эта служба не работает, поэтому клиенты POP3 не смогут подключаться к серверу Exchange Server, пока она не будет запущена. | Вручную | Сетевая служба | Служба топологии Active DirectoryMicrosoft Exchange | Необязательная |
Служба репликации Microsoft Exchange | MSExchangeRepl | Обеспечивает репликацию баз данных почтовых ящиков в группах обеспечения доступности баз данных. | Автоматически | Локальная система | Служба топологии Active DirectoryMicrosoft Exchange | Обязательная |
Клиентский доступ RPC Microsoft Exchange | MSExchangeRPC | Управляет клиентскими подключениями RPC для Exchange. | Автоматически | Сетевая служба | Служба топологии Active DirectoryMicrosoft Exchange | Обязательная |
Служба поиска Microsoft Exchange | MSExchangeFastSearch | Обеспечивает индексацию содержимого почтовых ящиков, которая повышает скорость поиска содержимого. | Автоматически | Локальная система | Служба топологии Active DirectoryMicrosoft Exchange | Обязательная |
Хост-контроллер поиска Microsoft Exchange | HostControllerService | Предоставляет службы развертывания и управления для приложений на локальном сервере Exchange Server. | Автоматически | Локальная система | HTTP-служба | Обязательная |
Расширение сервера Microsoft Exchange для системы архивации данных Windows Server | WSBExchange | Позволяет службе резервного копирования Windows Server копировать и восстанавливать данные сервера Exchange Server. | Вручную | Локальная система | Нет | Необязательная |
Microsoft Exchange Service Host | MSExchangeServiceHost | Предоставляет узел службы для компонентов Exchange, у которых нет собственных служб. | Автоматически | Локальная система | Служба топологии Active DirectoryMicrosoft Exchange | Обязательная |
Регулирование Microsoft Exchange | MSExchangeThrottling | Предоставляет возможность управления рабочими нагрузками пользователей. Такое управление ограничивает частоту пользовательских операций, оно ранее называлось регулированием пользователей. | Автоматически | Сетевая служба | Служба топологии Active DirectoryMicrosoft Exchange | Обязательная |
Транспорт Microsoft Exchange | MSExchangeTransport | Предоставляет SMTP-сервер и транспортный стек. | Автоматически | Сетевая служба | Служба топологии Active DirectoryMicrosoft Exchange • Служба управления фильтрацией Майкрософт | Обязательная |
Поиск журналов транспорта Microsoft Exchange | MSExchangeTransportLogSearch | Предоставляет возможность удаленного поиска для файлов журналов транспорта (например, отслеживание сообщений). | Автоматически | Локальная система | Служба топологии Active DirectoryMicrosoft Exchange | Необязательная |
Microsoft Exchange единой системы обмена сообщениями (только Exchange 2016 г.) | MSExchangeUM | Предоставляет функции единой системы обмена сообщениями: позволяет хранить голосовые и факсовые сообщения в Exchange 2016 г. и предоставляет пользователям телефонный доступ к электронной почте, голосовой почте, календарю, контактам или автоспутнику. Если служба остановлена, единая система обмена сообщениями недоступна. Если вы не используете um в Exchange 2016 г., эту службу можно отключить. | Автоматически | Локальная система | • Изоляция ключей CNG • Microsoft Exchange Active Directory Topology | Необязательно заполнять. |
Маршрутизатор Exchange единой системы обмена сообщениями (только Exchange 2016 г.) | MSExchangeUMCR | Перенаправляет клиентские подключения единой системы обмена сообщениями из служб клиентского доступа (frontend) в серверную службу единой системы обмена сообщениями Exchange серверов почтовых ящиков 2016 г. Если вы не используете um в Exchange 2016 г., эту службу можно отключить. | Автоматически | Локальная система | • Изоляция ключей CNG • Microsoft Exchange Active Directory Topology | Необязательно заполнять. |
Exchange на edge transport servers
В приведенной ниже таблице описываются службы Exchange, устанавливаемые на пограничных транспортных серверах.