Поделиться через


Взаимодействие с EWS с помощью управляемого API EWS

Сведения об использовании управляемого API EWS для связи с EWS в Exchange.

Примечание.

Мы удаляем возможность использования обычной проверки подлинности в Exchange Online для EWS с октября 2022 г.: Прекращение поддержки обычной проверки подлинности в Exchange Online. Вместо этого следует использовать проверку подлинности OAuth. Проверка подлинности приложения EWS с помощью OAuth

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

После того как вы настроили объект ExchangeService с учетными данными пользователя и конечной точкой EWS, любой объект почтового ящика, который ссылается на объект ExchangeService может использовать следующие типы методов для связи с EWS:

  • Методы объектов ExchangeService — все методы объекта ExchangeService, которые не наследуются от базового типа Object совершают вызовы в EWS.
  • Методы типа элемента почтового ящика Exchange и папки.

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

Method Что делает Операции, которые он вызывает
Load
Получает свойства элемента, вложения или объекта конфигурации пользователя.
Операция GetItem

Операция GetAttachment

Операция GetUserConfiguration
Bind
Заполняет новый элемент на клиенте данными из существующего элемента на сервере.
Операция GetItem
Save
Сохраняет копию клиентского элемента на сервере.
Операция UpdateItem

Операция UpdateFolder

Операция CreateItem

Операция CreateFolder
Обновление
Обновляет сервер, используя изменения, внесенных на клиенте.

Для элементов и папок метод Update использует операцию UpdateItem и операцию UpdateFolder.
Операция UpdateItem

Операция UpdateFolder
Удаление
Удаляет элемент на сервере.

Для элементов и папок метод Delete использует операцию DeleteFolder.
Операция DeleteItem

Операция DeleteFolder
Copy
Создает копию элемента или папки на сервере.
Операция CopyItem

Операция CopyFolder
Move
Перемещает элементы или папки на сервере.
Операция MoveItem

Операция MoveFolder

Для использования управляемого API EWS для связи с EWS

  1. Создайте экземпляр класса ExchangeService.

     ExchangeService service = new ExchangeService();
    

    Примечание.

    Создание экземпляра ExchangeService с пустым конструктором создаст экземпляр, привязанный к последней известной версии Exchange. Кроме того, можно указать определенную версию Exchange, указав версию в качестве параметра. ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);

  2. Настройте учетные данные пользователя, который отправляет запросы на сервер Exchange. Если вы хотите подключиться к EWS с компьютера, который вошел в домен, используя учетные данные аутентифицированного пользователя, задайте свойству UseDefaultCredentials на объекте ExchangeService значение true.

     // Connect by using the default credentials of the authenticated user.
     service.UseDefaultCredentials = true;
    

    Если вы не хотите подключаться с использованием стандартных учетных данных пользователя, настройте свойство Credentials на объекте ExchangeService, чтобы явно указать учетные данные другого пользователя. Если вы используете Exchange Online или Exchange Online в составе Office 365, вы будете использовать обычную проверку подлинности только по имени пользователя и паролю. Для проверки подлинности NTLM требуется доменное имя.

     // Connect by using the credentials of user1 at contoso.com.
     service.Credentials = new WebCredentials("user1@contoso.com", "password");
    

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

     // Connect by using the credentials of contoso/user1.
     service.Credentials = new WebCredentials("user1", "password", "contoso");
    

    Примечание.

    Если свойство UseDefaultCredentials имеет значение true, значение свойства Credentials игнорируется.

  3. Задайте URL-адрес конечной точки EWS. Этот URL-адрес находит файл exchange.asmx на сервере клиентского доступа.

     // Use Autodiscover to set the URL endpoint.
     service.AutodiscoverUrl("user1@contoso.com");
    

    Примечание.

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

    • Автообнаружение определяет лучшую конечную точку для указанного пользователя (конечную точку, которая ближе всех к серверу почтового ящика пользователя).
    • URL-адрес EWS может измениться при развертывании новых серверов клиентского доступа. В этом сценарии использование Автообнаружения означает, что изменения кода не нужны.
    • Необходимо явно установить URL-адрес или вызвать AutodiscoverUrl, но не следует делать и то и другое.

См. также