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
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);
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.
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.