Trabalhando com Anexos de Mensagem

Analisando e Salvando Anexos

Arquivos de mensagem Outlook podem conter um ou mais anexos. Aspose.Email permite que desenvolvedores percorram os anexos em um arquivo MSG e os salvem no disco. Este tópico descreve o processo. Também descreve como incorporar um anexo.

Aspose.Email MapiMessage classe é usada para carregar um arquivo MSG a partir do disco e expõe o getAttachments() método que referencia o MapiAttachment coleção de objetos associada ao arquivo MSG. O MapiAttachment objeto ainda expõe métodos que executam ações no anexo.

Para salvar anexos em um arquivo MSG no disco com o nome e extensão originais:

  1. Crie uma instância do MapiMessage classe para carregar um arquivo MSG usando o Load() método estático.
  2. Chame o MapiRecipient classe getAttachments() método para obter uma referência à coleção de MapiAttachment objetos associados ao arquivo MSG.
  3. Itere sobre o MapiAttachmentCollection para exibir o conteúdo referente a cada MapiAttachment objeto por meio de seus métodos públicos.
  4. Chame o MapiAttachment classe save() método para salvar o anexo no disco.  

Incorporando Mensagens como Anexos

Uma mensagem do Microsoft Outlook pode conter outras mensagens do Microsoft Outlook em anexos, seja como mensagens regulares, descritas acima, ou mensagens incorporadas. O MapiAttachmentCollection fornece membros sobrecarregados do método add para criar mensagens Outlook com ambos os tipos de anexos. Arquivos Outlook MSG incorporados em um arquivo MSG contêm um PR_ATTACH_METHOD com o valor 5.

Lendo uma Mensagem Incorporada de um Anexo

Inserção e Substituição de Anexos MSG

Aspose.Email API oferece a capacidade de inserir anexos em um índice específico na mensagem principal. Também oferece a funcionalidade de substituir o conteúdo de um anexo por outro anexo de mensagem.

Inserir Anexo MSG em Localização Específica

Aspose.Email API oferece a capacidade de inserir um anexo MSG a um MSG pai usando o MapiAttachmentCollection.Insert() método.

Substituir Conteúdo de Anexo MSG Incorporado

Isso pode ser usado para substituir o conteúdo de anexos incorporados pelos novos usando o Substituir método. No entanto, não pode ser usado para inserir anexo com PR_ATTACH_NUM = 4 (por exemplo) na coleção com collection.Count = 2.

Salvar Anexos de Mensagem Digitalmente Assinada

Aspose.Email API oferece a capacidade de obter ou definir um valor que indica se a mensagem assinada em claro será decodificada. 

Renomear um Anexo em um MapiMessage

Aspose.Email torna possível editar o NomeExibido valor da propriedade em anexos MapiMessage.

O exemplo de código a seguir demonstra como atualizar os nomes de exibição do primeiro e do segundo anexo dentro da mensagem Mapi carregada:

MapiMessage msg = MapiMessage.load(fileName);
msg.getAttachments().get_Item(0).setDisplayName("New display name 1");
msg.getAttachments().get_Item(1).setDisplayName("New display name 2");

Verificar se um Anexo é Embutido ou Regular

A diferença entre anexos embutidos e regulares está em como são apresentados dentro de um e‑mail. Anexos embutidos são incorporados ao corpo do e‑mail e podem ser visualizados sem precisar abrir um arquivo separado ou baixar nada. Anexos regulares, por outro lado, são arquivos separados que são anexados ao e‑mail, mas não são exibidos diretamente no corpo da mensagem e precisam ser baixados e abertos externamente. O MapiAttachment.IsInline propriedade do MapiAttachment classe obtém um valor que indica se o anexo é embutido ou regular.

O exemplo de código a seguir carrega uma mensagem de e‑mail de um arquivo e depois recupera informações sobre os anexos, imprimindo especificamente o nome de exibição de cada anexo e se ele está embutido na mensagem ou não:

MapiMessage message = MapiMessage.load("fileName");

for (MapiAttachment attach : message.getAttachments()) {
    System.out.println(attach.getDisplayName() + ": " + attach.isInline());
}