Extrair Conteúdos de Mensagens de E‑mail

Exibindo Informações de E‑mail na Tela

O MailMessage representa uma mensagem de e‑mail e permite que desenvolvedores acessem propriedades da mensagem. As informações do cabeçalho (discutidas em Extraindo Cabeçalhos de E‑mail) pode ser extraído e manipulado de diferentes maneiras. Este artigo explica como exibir informações selecionadas do cabeçalho do e‑mail e o corpo do e‑mail na tela.

  1. Criar uma instância do MailMessage.
  2. Carregar uma mensagem de e‑mail na instância MailMessage.
  3. Exibir o conteúdo do e‑mail na tela.

O código abaixo demonstra como carregar uma mensagem de e‑mail e exibir seu conteúdo – de, para, assunto e corpo do e‑mail – na tela.

Obtendo Data e Hora da Mensagem

O MailMessage classe pode ser usada para recuperar a data da mensagem em UTC ou fuso horário local. Esta informação pode ser resumida da seguinte forma:

  1. MailMessage.getDate() - retorna a data em UTC
  2. MailMessage.getLocalDate() - retorna a data no fuso horário local
  3. MailMessage.isLocalDate Retorna true, se MailMessage.getDate() estiver no fuso horário local

Extraindo Cabeçalhos de E‑mail

O cabeçalho de e‑mail representa um conjunto padrão de campos de cabeçalho definido pela Internet e RFC incluído nas mensagens de e‑mail. Um cabeçalho de e‑mail pode ser especificado usando o MailMessage classe. Os tipos de cabeçalho comuns são definidos em HeaderType classe. É uma classe selada que funciona como enumeração normal.

Para extrair cabeçalhos de um e‑mail, siga estas etapas:

  1. Criar uma instância da classe MailMessage.
  2. Carregar uma mensagem de e‑mail na instância da classe MailMessage.
  3. Depois que uma mensagem de e‑mail for carregada, obteremos seu conteúdo bruto. A própria classe MailMessage contém propriedades como From, To, Cc, Subject etc. Essas propriedades podem ser extraídas dos cabeçalhos.
  4. Exibir o conteúdo bruto.

Obter Valores de Cabeçalho Decodificados

Obter e Modificar o Cabeçalho de Disposição do Recurso Vinculado

O recurso vinculado pode ser acessado e manipulado programaticamente no objeto de mensagem de e‑mail. O getContentDisposition() método do LinkedResource classe obtém o cabeçalho Content-Disposition. O exemplo de código abaixo demonstra como acessar e modificar o nome de arquivo do recurso vinculado:

MailMessage eml = MailMessage.load(fileName);
eml.getLinkedResources().get_Item(0).getContentDisposition().setFileName("changed.png");

Obter corpo HTML como texto simples

MailMessage classe fornece a funcionalidade de extrair o corpo HTML da mensagem como texto simples. A classe MailMessage fornece um GetHtmlBodyText método que retorna o corpo HTML em texto simples. O método GetHtmlBodyText aceita um parâmetro booleano que indica se o corpo deve conter URLs ou não. Passar o parâmetro como verdadeiro indica que o corpo HTML deve conter URLs.

O trecho de código a seguir demonstra o uso do método GetHtmlBodyText para extrair o corpo HTML do e‑mail como texto simples.

Recuperar Endereços X.500 Exchange de E‑mails

Aspose.Email for Java permite acessar endereços X.500 Exchange diretamente através do MailAddress classe. Com o X500Address propriedade, você pode recuperar o endereço de e‑mail no formato X.500 do Exchange quando disponível. O exemplo de código a seguir mostra como carregar uma mensagem de e‑mail e obter o endereço X.500 do remetente:

MailMessage mailMessage = MailMessage.load(fileName);
String exaddr = mailMessage.getFrom().getX500Address();

Se o endereço X.500 existir, ele será retornado como uma string e pode ser usado para processamento adicional ou registro em aplicações que interagem com sistemas baseados em Exchange.

Extrair e Incorporar Imagens Vinculadas como Anexos em E‑mails HTML

Aspose.Email ExtractHTMLBodyResourcesAsAttachments método do HtmlSaveOption classe define se deve extrair recursos do corpo HTML como anexos. Assim, você pode extrair conteúdo vinculado a imagens do corpo HTML e incorporá‑lo como anexo em uma mensagem MIME. As imagens vinculadas são preservadas e corretamente associadas ao e‑mail, melhorando a integridade do conteúdo e a acessibilidade offline.

O exemplo de código a seguir demonstra como executar esta tarefa:

MailMessage mailMessage = MailMessage.load("input.eml");
HtmlSaveOptions options = new HtmlSaveOptions();
options.setExtractHTMLBodyResourcesAsAttachments(true);
options.setResourceHtmlRenderingHandler(new ResourceHtmlRenderingHandler() {
    public void invoke(final Object sender, final ResourceHtmlRenderingEventArgs e) {
        System.out.println(e.getPathToResourceFile() + " " + ((Attachment)sender).getContentId());
    }
});