Trabalhando com Anexos de Mensagem
Analisando e Salvando Anexos
Os arquivos de mensagem do Outlook podem conter um ou mais anexos. O Aspose.Email permite que os 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.
A classe MapiMessage do Aspose.Email é usada para carregar um arquivo MSG do disco e expõe o método getAttachments() que faz referência à coleção de objetos MapiAttachment associada ao arquivo MSG. O objeto MapiAttachment ainda expõe métodos que executam ações sobre o anexo.
Para salvar anexos em um arquivo MSG no disco com o nome e a extensão originais:
- Crie uma instância da classe MapiMessage para carregar um arquivo MSG usando o método estático Load().
- Chame o método getAttachments() da classe MapiRecipient para obter uma referência à coleção de objetos MapiAttachment associados ao arquivo MSG.
- Percorra a MapiAttachmentCollection para exibir informações sobre cada objeto MapiAttachment através de seus métodos públicos.
- Chame o método save() da classe MapiAttachment 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. A MapiAttachmentCollection fornece membros sobrecarregados do método add para criar mensagens do Outlook com ambos os tipos de anexos. Arquivos MSG do Outlook 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
A API Aspose.Email fornece a capacidade de inserir anexos em um índice específico na mensagem pai. Ela também fornece a possibilidade de substituir o conteúdo de um anexo por outro anexo de mensagem.
Inserir Anexo MSG em Localização Específica
A API Aspose.Email fornece a capacidade de inserir um anexo MSG em um MSG pai usando o método MapiAttachmentCollection.Insert().
Substituir Conteúdos de Anexo MSG Incorporado
Isso pode ser usado para substituir conteúdos de anexo incorporado pelos novos usando o método Replace. No entanto, não pode ser usado para inserir um anexo com PR_ATTACH_NUM = 4 (por exemplo) na coleção com collection.Count = 2.
Salvar Anexos de Mensagem Digitalmente Assinada
A API Aspose.Email fornece a capacidade de obter ou definir um valor indicando se uma mensagem assinada de forma clara será decodificada.
Renomear um Anexo em um MapiMessage
O Aspose.Email torna possível editar o valor da propriedade DisplayName nos anexos MapiMessage.
O seguinte exemplo de código demonstra como atualizar os nomes de exibição dos primeiros e segundos anexos dentro da mensagem Mapi carregada:
MapiMessage msg = MapiMessage.load(fileName);
msg.getAttachments().get_Item(0).setDisplayName("Novo nome de exibição 1");
msg.getAttachments().get_Item(1).setDisplayName("Novo nome de exibição 2");
Verificar se um Anexo é Inline ou Regular
A diferença entre anexos inline e regulares é como eles são apresentados dentro de um e-mail. Anexos inline são incorporados dentro do corpo do e-mail e podem ser visualizados sem precisar abrir um arquivo separado ou baixar qualquer coisa. Anexos regulares, por outro lado, são arquivos separados que estão anexados ao e-mail, mas não são exibidos diretamente dentro do corpo da mensagem e precisam ser baixados e abertos externamente. A propriedade MapiAttachment.IsInline da classe MapiAttachment obtém um valor indicando se o anexo é inline ou regular.
O seguinte exemplo de código 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á inline dentro da mensagem ou não:
MapiMessage message = MapiMessage.load("fileName");
for (MapiAttachment attach : message.getAttachments()) {
System.out.println(attach.getDisplayName() + ": " + attach.isInline());
}