Comunicarse con EWS mediante la API administrada de EWS

Busque información sobre cómo utilizar la API administrada de EWS para comunicarse con EWS en Exchange.

Nota:

Vamos a eliminar la posibilidad de utilizar la autenticación básica en Exchange Online para EWS, a partir de octubre de 2022 Deprecación de la autenticación básica en Exchange Online. En su lugar, debería utilizar la autenticación OAuth. Autenticar una aplicación EWS mediante OAuth

La clase ExchangeService de la API administrada de EWS contiene los métodos y las propiedades que se utilizan para establecer las credenciales de usuario, identificar el punto final de EWS, enviar y recibir mensajes SOAP y configurar el enlace para comunicarse con EWS. Antes de poder utilizar la API administrada de EWS para realizar cualquier tarea, tiene que crear una instancia de la clase ExchangeService y vincularla a EWS.

Después de configurar un objeto ExchangeService con credenciales de usuario y el punto de conexión EWS, cualquier objeto de buzón que haga referencia al objeto ExchangeService puede utilizar los siguientes tipos de métodos para comunicarse con EWS:

  • Métodos del objeto ExchangeService: todos los métodos del objeto ExchangeService que no se heredan del tipo base Objeto hacen llamadas a EWS.
  • Métodos de tipo de buzón y carpeta de Exchange.

Tabla 1. Métodos de tipo de carpeta y elemento de buzón que se comunican con EWS

Método Qué hace Operaciones a las que llama
Load
Obtiene las propiedades de un objeto de configuración de elemento, anexo o usuario.
Operación GetItem

Operación GetAttachment

Operación GetUserConfiguration
Enlazar
Rellena un nuevo elemento en el cliente con la información de un elemento existente en el servidor.
Operación GetItem
Save
Guarda la copia del elemento del cliente en el servidor.
Operación UpdateItem

Operación UpdateFolder

Operación CreateItem

Operación CreateFolder
Actualizar
Actualiza el servidor con los cambios realizados en el cliente.

Para los elementos y las carpetas, el método Actualizar utiliza la operación UpdateItem y la operación UpdateFolder.
Operación UpdateItem

Operación UpdateFolder
Eliminar
Elimina un elemento en el servidor.

Para los elementos y las carpetas, el método Eliminar utiliza la operación DeleteFolder.
Operación DeleteItem

Operación DeleteFolder
Copy
Crea una copia del elemento o de las carpetas en el servidor.
Operación CopyItem

Operación CopyFolder
Mover
Mueve elementos o carpetas en el servidor.
Operación MoveItem

Operación MoveFolder

Para utilizar la API administrada de EWS para comunicarse con EWS

  1. Instanciar la clase ExchangeService.

     ExchangeService service = new ExchangeService();
    

    Nota:

    Al instanciar ExchangeService con un constructor vacío se creará una instancia vinculada a la última versión conocida de Exchange. También puede dirigirse a una versión específica de Exchange especificando la versión como parámetro. ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);

  2. Establezca las credenciales del usuario que envía las solicitudes al servidor de Exchange. Si desea conectarse a EWS desde un equipo que haya iniciado sesión en el dominio, utilizando las credenciales del usuario autenticado, establezca la propiedad UseDefaultCredentials del objeto ExchangeService en true.

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

    Si no desea conectarse utilizando las credenciales de usuario predeterminadas, establezca la propiedad Credentials del objeto ExchangeService para especificar explícitamente las credenciales de un usuario diferente. Si utiliza Exchange Online o Exchange Online como parte de Office 365, utilizará la autenticación básica, con sólo un nombre de usuario y una contraseña. Se requiere un nombre de dominio para la autenticación NTLM.

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

    También puede especificar las credenciales del usuario utilizando el nombre de dominio y la contraseña del usuario.

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

    Nota:

    Si la propiedad UseDefaultCredentials se establece como true, el valor de la propiedad Credenciales se ignora.

  3. Establezca la URL del punto de conexión de EWS. Esta URL localiza el archivo exchange.asmx en el servidor de Client Access.

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

    Nota:

    Aunque puede establecer explícitamente la propiedad Url del ExchangeService a un valor codificado, le recomendamos que utilice el servicio Detección automática en su lugar, por las siguientes razones:

    • La detección automática determina el mejor punto de conexión para un usuario determinado (el punto de conexión más cercano al servidor de buzones de correo del usuario).
    • La URL del EWS puede cambiar si se implementan nuevos servidores de Client Access. En este escenario, el uso de Detección automática significa que no es necesario realizar cambios de código.
    • Debe establecer la URL explícitamente o llamar aAutodiscoverUrl, pero no debe hacer ambas cosas.

Vea también