Compartilhar via


Exportando e importando itens usando o EWS no Exchange

Saiba mais sobre como exportar e importar compromissos, emails, contatos, tarefas e outros itens de caixa de correio usando a API Gerenciada do EWS ou o EWS no Exchange.

O Exchange é uma mina de ouro de informações importantes: email, contatos, tarefas e calendários são fundamentais para as funções de uma organização. O EWS permite exportar e importar tipos de item principais por meio de três abordagens diferentes:

  • Tipos de item exchange. Recomendamos essa abordagem para importar e exportar itens de e para outros sistemas e arquivos.

  • Funcionalidade no nível do item (somente EWS). Recomendamos essa opção para exportar ou copiar de um servidor ou caixa de correio do Exchange e importar para outro.

  • O MIME transmite na forma de formatos de arquivo padrão comuns, como iCalendar e vCard. Como o conjunto de propriedades é limitado e a conversão mime é cara, recomendamos a abordagem apenas para importar ou exportar uma pequena quantidade de dados.

Importante

O EWS não foi projetado para backup e restauração da caixa de correio. Para fazer backup e restaurar bancos de dados, use a API de backup e restauração. Consulte também Backup, restauração e recuperação de desastres no TechNet.

Tabela 1. Exportar e importar itens de contato, email e calendário

Tarefa Método da API Gerenciada do EWS Operação do EWS Observações
Exporte uma cópia de um item de contato, email, tarefa ou calendário com um conjunto de propriedades especificado.
Contact.Bind
EmailMessage.Bind
Appointment.Bind
Task.Bind
GetItem
Recomendamos essa opção se você estiver exportando itens de caixa de correio para outro sistema ou arquivo que não seja exchange (incluindo tipos de arquivo vCard e iCal).
Como você tem controle sobre o conjunto de propriedades exportadas e, como o desempenho é melhor para o servidor exchange, essa geralmente é a melhor opção.

Dependendo das propriedades definidas em um item de caixa de correio e se seu aplicativo está ciente de todos os identificadores de propriedade não esquematizados (propriedades estendidas) que podem ser definidos em um item, essa opção pode não produzir uma cópia de fidelidade total.

Esses métodos e operações fornecem o conjunto esquematizado de propriedades para um item mais quaisquer propriedades estendidas solicitadas.
O método Bind ou a operação GetItem só podem fornecer exportação completa de itens se você souber as propriedades estendidas definidas em um item.
Você pode solicitar todas as propriedades estendidas conhecidas para habilitar a fidelidade total.

DICA: você pode usar o recurso de rastreamento na API Gerenciada do EWS para obter a representação XML de itens exportados. Para obter mais informações, consulte Exportar um item para um formato personalizado.
Importe uma cópia de um item de contato, email, tarefa ou calendário com um conjunto de propriedades especificado.
Contact.Save
EmailMessage.Save
Compromisso.Salvar
Task.Save
CreateItem
Recomendamos essa opção para importar itens de caixa de correio para o Exchange.
Talvez seja necessário definir propriedades especiais em alguns tipos de item para manter o estado do item importado.
Como algumas propriedades são definidas apenas pelo Exchange e não por clientes, nem sempre é possível ter uma importação de fidelidade total.

Por exemplo, você não pode importar uma reunião com os participantes para uma caixa de correio porque o Exchange define as relações entre o organizador e os participantes.
Essa relação só pode ser estabelecida pelos organizadores enviando e os participantes recebendo e respondendo à solicitação da reunião.

Objetos de compromisso no Exchange podem ter relações e configurações complexas.
Compromissos que têm participantes (reuniões) têm configurações que unem o organizador da reunião e os participantes da reunião.
Essas configurações não são mantidas quando você exporta e importa compromissos.
Não há suporte para restabelecer programaticamente as relações organizador/participante da reunião diretamente nos compromissos.
Uma opção que você tem para restabelecer essas relações é realizar pós-processamento após uma importação, depois fazer com que um organizador reenvia as reuniões e faça com que os participantes aceitem as reuniões.
Você pode usar a representação do Exchange para fazer as chamadas para o organizador e os participantes.
Você deve alterar a propriedade UID do objeto Appointment antes de importar para evitar que as reuniões estejam incorretamente relacionadas a outras reuniões em uma caixa de correio.
Exporte uma cópia de um item de contato, email, tarefa ou calendário em fidelidade total.
Não aplicável
ExportItems
Essa é a melhor opção para exportar itens de caixa de correio que você deseja importar de volta para uma caixa de correio do Exchange.
Você também pode usar essa opção para copiar itens entre caixas de correio.

A operação ExportItems fornece um fluxo opaco que representa o item que você pode usar para mover informações entre caixas de correio.
Você pode usar ExportItems com a operação GetItem para criar um índice para localizar os itens em outro sistema.
Você não pode alterar o fluxo de exportação.
Para obter mais informações, consulte Exportar itens com fidelidade total.
Importe uma cópia de um item de contato, email, tarefa ou calendário em fidelidade total.
Não aplicável
UploadItems
Essa é a única opção para importar itens que foram exportados pela operação ExportItems .
Exporte uma cópia de um item de contato, email ou calendário como um fluxo MIME para um tipo de arquivo comum.
Contact.Bind
EmailMessage.Bind
Appointment.Bind
GetItem
Você pode usar a propriedade MimeContent para obter a representação de fluxo MIME de um item.

Isso fornecerá um subconjunto básico de todas as propriedades em um item.
Como prática recomendada, use apenas o fluxo MIME para operações pontuais.
Não dependa do MIME para importação/exportação de itens grandes e frequentes, pois o Exchange executa a conversão de conteúdo para o MIME e isso pode afetar o desempenho.

O fluxo DE CONTATO MIME é um arquivo vCard (.vcf).
Dependendo das propriedades definidas em um contato, isso pode não produzir uma cópia de fidelidade total.
Observe que você não pode importar um contato usando o fluxo mime do vCard.
Para saber mais, confira Exportar um contato para um arquivo vCard.

O fluxo MIME emailMessage é um arquivo .eml.
O formato .eml é conveniente porque o Outlook e outros clientes de email podem identificá-lo.
Você também pode usar o fluxo MIME para criar um arquivo .mht, o que é conveniente porque muitos navegadores podem usar esse tipo de arquivo.
O EWS não fornece um fluxo de arquivos .msg para exportar um email para um arquivo .msg.
Suas opções para exportar um arquivo .msg são construir um . Arquivo MSG dos resultados de um método EmailMessage.Bind ou chamada de operação GetItem ou use uma API de terceiros que chama EWS e constrói o arquivo .msg a partir dos resultados.
Para obter mais informações, consulte Exportar um email como um arquivo .eml.

O fluxo MIME de nomeação é um arquivo iCal (.ics).
O formato .ics é conveniente porque o Outlook e outros clientes de email podem identificá-lo.
Essa não é uma opção viável para exportar reuniões porque as informações do participante não são fornecidas no fluxo MIME.
Anexos e outras propriedades podem não ser incluídos no fluxo MIME.
Considere construir o formato iCal a partir do objeto Appointment ou do XML retornado pela operação GetItem .
Dessa forma, você pode capturar mais propriedades do Exchange com propriedades estendidas ("propriedades X" no arquivo iCal.
Você também pode exportar um compromisso no formulário XML.
Chame a operação GetItem e salve o XML em seu sistema.
Você também pode usar a funcionalidade de rastreamento na API Gerenciada do EWS para capturar o XML para colocar um banco de dados XML.
Para obter mais informações, consulte Exportando um compromisso como um arquivo iCal.
Importe uma cópia de um item de email ou calendário como um fluxo MIME para um tipo de arquivo comum.
EmailMessage.Save
Compromisso.Salvar
CreateItem
Você pode importar um arquivo .eml ou .ics usando a propriedade MimeContent em um objeto EmailMessage ou Appointment .
Você precisará definir a propriedade estendida PidTagMessageFlags (0x0E07) se o email não for um rascunho.

Você não pode usar essa abordagem para importar reuniões.

Alternativas à exportação e importação de itens usando o EWS

Outras opções estão disponíveis para expor e importar itens de e para uma caixa de correio do Exchange. Veja a seguir algumas ideias a serem consideradas ao projetar sua estratégia de importação e exportação:

Nesta seção

Confira também