Compartilhar via


Comunicar-se com o EWS usando a API Gerenciada do EWS

Encontre informações sobre como usar a API Gerenciada do EWS para se comunicar com o EWS no Exchange.

Observação

Estamos removendo a capacidade de usar a autenticação Básica no Exchange Online para EWS a partir de outubro de 2022 Substituição da autenticação Básica no Exchange Online. Em vez disso, você deve usar a autenticação OAuth. Autenticar um aplicativo EWS usando o OAuth

A classe ExchangeService na API Gerenciada do EWS contém os métodos e propriedades que você usa para definir credenciais de usuário, identificar o ponto de extremidade do EWS, enviar e receber mensagens SOAP e configurar a associação para se comunicar com o EWS. Antes de usar a API Gerenciada do EWS para executar qualquer tarefa, você precisa criar uma instância da classeExchangeService e associá-la ao EWS.

Depois de configurar um objeto ExchangeService com credenciais de usuário e o ponto de extremidade do EWS, qualquer objeto de caixa de correio que faça referência ao objeto ExchangeService poderá usar os seguintes tipos de método para se comunicar com o EWS:

  • Métodos do objeto ExchangeService — Todos os métodos no objetoExchangeService que não são herdados do tipo Object base fazem chamadas ao EWS.
  • Métodos de tipo de pasta e item de caixa de correio do Exchange.

Tabela 1. Métodos de tipo de pasta e item de caixa de correio que se comunicam com o EWS

Method Função Operações que ele chama
Load
Obtém propriedades em um item, anexo ou objeto de configuração do usuário.
Operação GetItem

Operação GetAttachment

Operação GetUserConfiguration
Vincular
Popula um novo item no cliente com informações de um item existente no servidor.
Operação GetItem
Save
Salva a cópia do item do cliente no servidor.
Operação UpdateItem

Operação UpdateFolder

Operação CreateItem

Operação CreateFolder
Update
Atualiza o servidor com as alterações feitas no cliente.

Para itens e pastas, o método Update usa a operação updateItem e a operação UpdateFolder.
Operação UpdateItem

Operação UpdateFolder
Delete
Exclui um item no servidor.

Para itens e pastas, o método Delete usa a operação DeleteFolder.
Operação DeleteItem

Operação DeleteFolder
Copy
Cria uma cópia do item ou pastas no servidor.
Operação CopyItem

Operação CopyFolder
Move
Move itens ou pastas no servidor.
Operação MoveItem

Operação MoveFolder

Para usar a API Gerenciada do EWS para se comunicar com o EWS

  1. Crie uma instância da classe ExchangeService.

     ExchangeService service = new ExchangeService();
    

    Observação

    Criar uma instância ExchangeService com um construtor vazio criará uma instância associada à versão mais recente conhecida do Exchange. Como alternativa, você pode direcionar uma versão específica do Exchange especificando a versão como um parâmetro. ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);

  2. Defina as credenciais do usuário que envia solicitações ao servidor Exchange. Se você quiser se conectar ao EWS de um computador que está conectado ao domínio, usando as credenciais do usuário autenticado, defina a propriedade UseDefault Credentials no objetoExchangeService como true.

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

    Se você não quiser se conectar usando as credenciais de usuário padrão, defina a propriedade Credentials no objeto ExchangeService para especificar explicitamente as credenciais de um usuário diferente. Se você estiver usando o Exchange Online ou o Exchange Online como parte do Office 365, usará a autenticação básica, com apenas um nome de usuário e senha. Um nome de domínio é necessário para autenticação NTLM.

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

    Você também pode especificar as credenciais do usuário usando o nome de domínio e a senha do usuário.

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

    Observação

    Se a propriedadeUseDefaultCredentials for definida como true, o valor da propriedade Credentials será ignorado.

  3. Defina a URL do ponto de extremidade do EWS. Essa URL localiza o arquivo exchange.asmx no servidor de Acesso para Cliente.

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

    Observação

    Embora você possa definir explicitamente a propriedade Url do ExchangeService para um valor codificado, recomendamos que você use o serviço de Descoberta Automática, pelos seguintes motivos:

    • A Descoberta Automática determina o melhor ponto de extremidade para um determinado usuário (o ponto de extremidade mais próximo ao servidor de Caixa de Correio do usuário).
    • A URL do EWS poderá ser alterada se novos servidores de Acesso para Cliente forem implantados. Nesse cenário, o uso da Descoberta automática significa que nenhuma alteração de código é necessária.
    • Você deve definir a URL explicitamente ou chamar AutodiscoverUrl, mas não deve fazer ambos.

Confira também