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.
- Criar uma instância do MailMessage.
- Carregar uma mensagem de e‑mail na instância MailMessage.
- 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:
- MailMessage.getDate() - retorna a data em UTC
- MailMessage.getLocalDate() - retorna a data no fuso horário local
- 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:
- Criar uma instância da classe MailMessage.
- Carregar uma mensagem de e‑mail na instância da classe MailMessage.
- 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.
- 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
O 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());
}
});