Enviar, Ler e Organizar Mensagens no Exchange Server

Recuperar Informações da Caixa de Correio Exchange com EWS

Aspose.Email permite recuperar detalhes da caixa de correio do Microsoft Exchange usando o IEWSClient classe. Ao chamar o GetMailboxInfo() método, o cliente retorna um ExchangeMailboxInfo objeto que contém URIs úteis de pastas, como Mailbox, Inbox, Drafts e Sent Items.

Para conectar ao Exchange Server com Exchange Web Services (EWS), use o IEWSClient classe. Esta classe usa EWS para conectar e gerenciar itens em um Exchange Server.

O trecho de código a seguir demonstra como obter informações da caixa de correio usando os serviços web de troca.

Enviar Mensagens de Email via EWS

Você pode enviar e‑mails através do Exchange chamando o IEWSClient->Send() método. Ele recebe um MailMessage objeto e o envia diretamente pelo servidor usando EWS.

O exemplo de código a seguir demonstra como enviar uma mensagem de e‑mail HTML através de um Exchange Server usando Exchange Web Services (EWS) com Aspose.Email for C++. Ele mostra o processo completo de estabelecer uma conexão com o Exchange, criar uma mensagem de e‑mail com remetente, destinatário, assunto e conteúdo HTML e, em seguida, enviar a mensagem usando o método Send do cliente EWS.

Lendo E‑mails da Caixa de Correio de Outro Usuário

Algumas contas em servidores Exchange têm permissão para acessar várias caixas de correio, e alguns usuários possuem múltiplas contas de e‑mail no mesmo servidor Exchange. Em ambos os casos, os usuários podem acessar as caixas de correio de outros usuários com o Aspose.Email. A API fornece um mecanismo para acessar pastas e e‑mails de outras caixas de correio usando o IEWSClient classe. Essa funcionalidade pode ser alcançada usando a sobrecarga de GetMailboxInfo() método e fornecendo o endereço de e‑mail do usuário como parâmetro.

O trecho de código a seguir mostra como ler e‑mails usando o IEWSClient classe.

Listar Mensagens Usando EWS

Aspose.Email for C++ permite que você recupere metadados de mensagens das caixas de correio do Exchange Server através do IEWSClient. Usando o baseado em EWS ListMessages API, você pode listar mensagens de qualquer pasta, navegar pelos metadados das mensagens e implementar paginação para caixas de correio grandes.

Listar Mensagens da Caixa de Entrada

Usar ListMessages para recuperar informações básicas da mensagem, como assunto, remetente, destinatários e ID da mensagem da caixa de entrada ou de qualquer pasta.

O exemplo de código a seguir demonstra como listar e exibir informações básicas de todas as mensagens em um servidor Exchange.

  1. Crie uma instância de IEWSClient.
  2. Chame ListMessages com o URI da pasta de destino.
  3. Iterar por ExchangeMessageInfoCollection.

Listar Mensagens de Qualquer Pasta

ListMessages aceita qualquer URI de pasta válido, permitindo que você liste itens de Itens Excluídos, rascunhos, itens enviados ou pastas personalizadas. Use o IEWSClient->get_MailboxInfo->xxxFolderUri propriedade para obter o URI de diferentes pastas.

O exemplo de código a seguir demonstra como acessar diferentes URIs de pastas do Exchange Server e recuperar mensagens de uma pasta especificada.

Paginação na Listagem de Mensagens

Para caixas de correio grandes, use ListMessagesByPage para carregar mensagens em blocos menores.

O exemplo de código a seguir demonstra como implementar paginação para recuperar um grande número de mensagens da caixa de entrada de um servidor Exchange.

  1. Primeiro, ele cria múltiplas mensagens de teste no servidor.
  2. Em seguida, usa o ListMessagesByPage método para recuperar mensagens em lotes menores (5 mensagens por página neste caso), iterando por todas as páginas até que a última página seja alcançada.
  3. Por fim, o código verifica se todas as mensagens foram recuperadas com sucesso contando o total de itens em todas as páginas.

Obter Informações do Tipo de Mensagem

Usar ExchangeMessageInfo->MessageInfoType para determinar o tipo subjacente da mensagem do Exchange (por exemplo, e‑mail, solicitação de reunião, etc.).

O exemplo de código a seguir demonstra como conectar a um servidor Exchange e recuperar informações do tipo de mensagem da pasta Itens Excluídos.

Salvar Mensagens Usando Exchange Web Services (EWS)

Aspose.Email permite que você recupere mensagens de uma caixa de correio Exchange Server e as salve em múltiplos formatos, como EML, streams de memória e MSG. Os exemplos abaixo demonstram como obter informações da mensagem e armazenar mensagens usando o IEWSClient API.

Salvar Mensagens como Arquivos EML

Para salvar mensagens da caixa de correio como arquivos EML:

  1. Crie um IEWSClient instância usando credenciais válidas.
  2. Chame ListMessages() para recuperar um ExchangeMessagesInfoCollection.
  3. Percorra a coleção para acessar o URI único de cada mensagem.
  4. Chame SaveMessage() para armazenar cada mensagem no disco em formato EML.

O exemplo de código a seguir demonstra como salvar mensagens de e‑mail de uma caixa de entrada de servidor Exchange como arquivos EML individuais localmente usando Aspose.Email for C++.

Salvar Mensagens em um Stream de Memória

Ao invés de gravar no disco, você pode salvar mensagens em um stream de memória — útil para armazenar e‑mails em um banco de dados ou processá‑los na memória.

O exemplo de código a seguir demonstra como salvar mensagens de e‑mail da caixa de entrada de um servidor Exchange em streams de memória.

Salvar mensagens no formato MSG

Para salvar mensagens como MSG:

  1. Recupere a mensagem usando FetchMessage(), que retorna um MailMessage.
  2. Chame MailMessage::Save() com opções de salvamento MSG.

O exemplo de código a seguir demonstra como buscar e salvar mensagens de e‑mail de uma caixa de entrada de servidor Exchange como arquivos no formato Outlook MSG.

Recuperar Detalhes da Mensagem pelo URI da Mensagem

Quando somente o URI único de uma mensagem está disponível, você ainda pode recuperar o conteúdo completo ExchangeMessageInfo objetos. O IEWSClient::ListMessages() sobrecarga aceita uma lista de IDs de mensagens (URIs) e retorna um ExchangeMessageInfoCollection. Use este recurso quando você armazena ou recebe URIs de mensagens externamente e precisa carregar metadados (assunto, remetente, tamanho, etc.) sem buscar as mensagens completas.

O exemplo de código a seguir demonstra como criar múltiplas mensagens de e‑mail em um servidor Exchange e então recuperar suas informações usando identificadores únicos.

Buscar Conteúdo Completo da Mensagem

ListMessages() retorna informações resumidas (assunto, remetente, IDs). Para carregar o conteúdo completo da mensagem — corpo, cabeçalhos, anexos — use FetchMessage().

O exemplo de código a seguir demonstra como buscar mensagens completas da caixa de entrada de um servidor Exchange e extrair informações de anexos:

  1. Crie um IEWSClient instância.
  2. Chame ListMessages() para obter metadados básicos da mensagem.
  3. Extrair o UniqueUri de cada mensagem.
  4. Chame FetchMessage() para recuperar detalhes completos da mensagem.

Buscar Tamanho da Mensagem (Sem Baixar Mensagem Completa)

Aspose.Email fornece informações de tamanho da mensagem sem buscar o e‑mail completo, através do ExchangeMessageInfo::Size propriedade.

Isso é útil para:

  • estatísticas da caixa de correio
  • cálculos de cota
  • filtrando mensagens grandes antes de baixar

O exemplo de código a seguir demonstra como listar e exibir metadados de mensagens, incluindo tamanho, da caixa de entrada de um servidor Exchange.

Baixar E‑mails de Pastas Públicas do Exchange

Pastas públicas do Exchange permitem armazenar mensagens compartilhadas entre usuários.

Aspose.Email IEWSClient permite que você execute as seguintes operações com essas pastas e mensagens armazenadas nelas:

  • Listar pastas públicas
  • Navegue subpastas recursivamente
  • Baixe mensagens e salve‑as (por exemplo, como arquivos MSG)

Observação: Microsoft Exchange Server 2007 ou posterior é necessário, pois versões anteriores não suportam EWS.

O exemplo de código a seguir demonstra como baixar mensagens de todas as pastas públicas e de suas subpastas em um servidor Exchange de forma recursiva, e salvá‑las como arquivos Outlook MSG localmente.

Mover Mensagens Entre Pastas Exchange

Você pode mover mensagens de uma pasta Exchange para outra usando o IEWSClient::MoveItem método. Ele requer:

  • O URI único da mensagem a ser movida.
  • O URI único da pasta de destino.

O exemplo de código a seguir demonstra como filtrar e mover mensagens de e‑mail específicas da caixa de entrada de um servidor Exchange para outra pasta com base em critérios de conteúdo.

  1. Conectar ao Exchange Server usando credenciais EWS.
  2. Obter informações da caixa de correio (URIs de pastas).
  3. Listar todas as mensagens da Caixa de Entrada.
  4. Iterar por cada mensagem.
  5. Verificar se o assunto contém "process this message".
  6. Mover mensagens correspondentes para a pasta Itens Excluídos.
  7. Exibir confirmação para cada mensagem movida.

Excluir Mensagens de uma Pasta Exchange

Você pode excluir mensagens de e‑mail de uma pasta com a ajuda do IEWSClient->DeleteMessage método. Ele recebe o URI exclusivo da mensagem como parâmetro.

O exemplo de código a seguir demonstra como filtrar e excluir mensagens de e‑mail específicas da caixa de entrada de um servidor Exchange com base no assunto.

  1. Iterar pelas mensagens da Caixa de Entrada.
  2. Processar mensagens com base em alguns critérios (neste exemplo, encontramos uma palavra‑chave no assunto da mensagem).
  3. Excluir mensagens correspondentes.

Copiar Mensagens para Outra Pasta Exchange

Usar IEWSClient::CopyItem para duplicar uma mensagem em uma pasta diferente. A versão sobrecarregada retorna o URI da cópia recém‑criada.

O exemplo de código a seguir demonstra como criar uma mensagem de e‑mail em um servidor Exchange e copiá‑la para outra pasta.