Открыть сервис

Exchange Web Services

Exchange Web Services (EWS) — это программный интерфейс приложения (API), разработанный компанией Microsoft для взаимодействия с сервером Microsoft Exchange Server. EWS обеспечивает программный доступ к почтовым ящикам, календарям, контактам, задачам и другим элементам, хранящимся на сервере Exchange, позволяя разработчикам создавать клиентские приложения, веб-сервисы и интеграционные решения для работы с корпоративной электронной почтой и совместной работы. Протокол обмена данными в EWS основан на технологии веб-служб: запросы и ответы отправляются в формате SOAP (Simple Object Access Protocol) по протоколам HTTP или HTTPS.

История

Предшественники и появление

До появления EWS доступ к данным Exchange осуществлялся через проприетарные протоколы, такие как MAPI (Messaging API) и WebDAV (Web Distributed Authoring and Versioning). MAPI, используемый в клиенте Microsoft Outlook, был сложен для сторонних разработчиков и требовал установки дополнительных компонентов на клиентской машине. WebDAV, доступный в Exchange Server 2000/2003, был более открытым, но имел ограниченные возможности и не обеспечивал полного доступа ко всем функциям Exchange.

EWS был впервые представлен в 2007 году вместе с выпуском Microsoft Exchange Server 2007 и клиентской версией Microsoft Office Outlook 2007. Изначально он позиционировался как замена как MAPI, так и WebDAV, предоставляя единый, более гибкий и масштабируемый интерфейс для удаленного доступа к серверу.

Развитие и версии

После выхода Exchange 2007 API активно развивался. В Exchange 2010 EWS был существенно расширен: появилась поддержка работы с личными архивами, календарями и задачами, улучшена обработка ошибок. Версия Exchange 2013 значительно упростила модель аутентификации и повысила производительность за счёт оптимизации транспортного уровня.

Ключевой вехой стало введение в Exchange 2013 Managed API — набора библиотек .NET, который упрощал разработку клиентов на C# и VB.NET, скрывая сложность SOAP-вызовов. Этот API долгое время оставался стандартом для интеграции с Exchange в среде Windows.

Статус и закат эпохи

С середины 2010-х годов компания Microsoft начала постепенное смещение акцента с EWS на свой облачный продукт — Microsoft Graph. Графический API (Graph API) является современной RESTful-альтернативой, объединяющей доступ к данным Exchange, SharePoint (организация признана нежелательной в РФ), OneDrive, Azure AD и другим сервисам Microsoft 365.

С выходом Exchange Online (часть Microsoft 365) и появлением Microsoft Graph, поддержка EWS в облачном сервисе была сохранена, но Microsoft официально объявила, что больше не вкладывает ресурсы в развитие EWS. С 1 октября 2022 года все новые возможности, связанные с почтой, календарями и контактами, в Exchange Online реализуются исключительно через Graph API. EWS для Exchange Online стал «унаследованным» API, который можно использовать, но на который не стоит рассчитывать при создании новых решений. В локальных версиях Exchange Server (начиная с Exchange 2019) EWS остаётся основным API для клиентского доступа, но его возможности не расширяются.

Архитектура и протокол

EWS использует модель «запрос-ответ», в которой клиент отправляет SOAP-запрос на сервер, а сервер возвращает SOAP-ответ. Обмен сообщениями происходит по протоколу HTTPS. Операции инкапсулируются в виде веб-методов, таких как CreateItem (создание письма или встречи), FindItem (поиск элементов), GetItem (получение конкретного элемента), UpdateItem (обновление) и DeleteItem (удаление).

Адреса точек доступа (endpoints) для EWS обычно имеют вид: https://[сервер]/EWS/Exchange.asmx (для локального Exchange Server) или https://outlook.office365.com/EWS/Exchange.asmx (для облачного Exchange Online). Аутентификация клиента осуществляется с помощью Basic-аутентификации (логин/пароль), NTLM, OAuth 2.0 (начиная с Exchange 2013/Online) или современного сертификата.

Основные транспортные протоколы, поддерживаемые EWS:

Типы данных и поддерживаемые объекты

EWS предоставляет доступ к большинству типов элементов, хранящихся в почтовом ящике Exchange:

Схемы аутентификации

Применение

EWS широко используется для следующих задач:

Автоматизация почтового трафика

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

Разработка корпоративных клиентов

Несмотря на преобладание Microsoft Outlook, существуют сторонние клиенты, взаимодействующие с Exchange через EWS — например, клиенты на платформах macOS и Linux (Evolution, Thunderbird с расширением Owl).

Архивация и миграция данных

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

Синхронизация мобильных устройств

До появления ActiveSync протокол EWS (через Direct Push) использовался некоторыми мобильными устройствами для синхронизации календарей и почты.

Инструменты разработки и Managed API

Официально корпорация Microsoft предоставляла Managed API для C# (.NET), который значительно упрощал написание кода. Пакет Microsoft.Exchange.WebServices содержит классы, такие как ExchangeService, Folder, Item, Contact, Appointment и т.д.

Начиная с Exchange 2013 и до настоящего времени, основной рекомендуемый инструмент — PowerShell с модулем Exchange Web Services Managed API. Например, для доступа к почтовому ящику через PowerShell можно использовать следующие команды: ```powershell $service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2013_SP1) $service.Credentials = New-Object System.Net.NetworkCredential("user@domain.com", "password") $service.Url = "https://outlook.office365.com/EWS/Exchange.asmx";

$folder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service, [Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox) ``` Для платформ, отличных от .NET (Java, Python, Go), SDK не предоставляется, и разработчикам приходится напрямую формировать SOAP-запросы.

Критика и ограничения

Перспективы

Корпорация Microsoft рекомендует всем новым разработкам, ориентированным на Exchange Online, использовать Microsoft Graph API. Для локальных развёртываний (Exchange Server 2019) EWS остаётся основным API, но его развитие заморожено. Существующие интеграции, использующие EWS, могут продолжать работать, однако компания предупреждает, что в будущем может потребоваться их миграция на Graph API, особенно при переходе на облачные решения.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →