Extraindo Conteúdos de Mensagens de E-mails
Extraindo Conteúdos de Mensagens de E-mails
Exibindo Informações do E-mail na Tela
O MailMessage representa uma mensagem de e-mail e permite que desenvolvedores acessem propriedades da mensagem de e-mail. As informações do cabeçalho (discutidas em Extraindo Cabeçalhos de E-mail) podem ser extraídas e manipuladas de diferentes maneiras. Este artigo explica como exibir informações selecionadas do cabeçalho de e-mail e o corpo do e-mail na tela. Para Exibir Informações do E-mail na Tela, siga estas etapas:
- Crie uma instância da classe MailMessage.
- Carregue uma mensagem de e-mail na instância MailMessage.
- Exiba o conteúdo do e-mail na tela.
O seguinte trecho de código mostra como exibir informações do e-mail na tela.
// Para exemplos completos e arquivos de dados, por favor, vá para https://github.com/aspose-email/Aspose.Email-for-.NET
// O caminho para o diretório de arquivos.
string dataDir = RunExamples.GetDataDir_Email();
// Crie uma instância de MailMessage carregando um arquivo Eml
MailMessage message = MailMessage.Load(dataDir + "test.eml", new EmlLoadOptions());
// Obtém as informações do remetente, informações do destinatário, assunto, corpo html e corpo de texto
Console.Write("De:");
Console.WriteLine(message.From);
Console.Write("Para:");
Console.WriteLine(message.To);
Console.Write("Assunto:");
Console.WriteLine(message.Subject);
Console.WriteLine("HtmlBody:");
Console.WriteLine(message.HtmlBody);
Console.WriteLine("TextBody");
Console.WriteLine(message.Body);
Extraindo Cabeçalhos de E-mail
O cabeçalho de e-mail representa um conjunto padrão de campos de cabeçalho definidos por Internet e RFC incluídos nas mensagens de e-mail da Internet. Um cabeçalho de e-mail pode ser especificado usando a classe MailMessage. Tipos comuns de cabeçalho são definidos na classe HeaderType. É uma classe selada que funciona como uma enumeração normal. Para extrair cabeçalhos de um e-mail, siga estas etapas:
- Crie uma instância da classe MailMessage.
- Carregue 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 classe MailMessage contém propriedades como De, Para, Cc, Assunto e assim por diante. Essas propriedades podem ser extraídas dos cabeçalhos.
O seguinte trecho de código mostra como extrair cabeçalhos de e-mail.
Obter Valores de Cabeçalho Decodificados
O seguinte trecho de código mostra como obter valores de cabeçalho decodificados.
// Para exemplos completos e arquivos de dados, por favor, vá para https://github.com/aspose-email/Aspose.Email-for-.NET
MailMessage mailMessage = MailMessage.Load(dataDir + "emlWithHeaders.eml");
string decodedValue = mailMessage.Headers.GetDecodedValue("Thread-Topic");
Console.WriteLine(decodedValue);
Obter corpo de texto simples
A propriedade Body retorna uma representação em texto simples do corpo de uma mensagem.
string plainTextBody = mailMessage.Body;
Nota: Se a parte MIME text/plain estiver presente em uma mensagem, a propriedade retorna seus dados de texto. Caso contrário, retorna o conteúdo de texto separado da propriedade HtmlBody sem marcação html.
Obter corpo HTML como texto simples
A classe MailMessage fornece o recurso para extrair o corpo HTML da mensagem como texto simples. A classe MailMessage fornece um método GetHtmlBodyText que retorna o corpo HTML em texto simples. Este método analisa a propriedade HtmlBody e retorna conteúdo separado em texto simples ignorando a marcação html. 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 seguinte trecho de código demonstra o uso do método GetHtmlBodyText para extrair o corpo HTML do e-mail como texto simples.
// Para exemplos completos e arquivos de dados, por favor, vá para https://github.com/aspose-email/Aspose.Email-for-.NET
// O caminho para o diretório de arquivos.
string dataDir = RunExamples.GetDataDir_Email();
MailMessage mail = MailMessage.Load(dataDir + "HtmlWithUrlSample.eml");
string body_with_url = mail.GetHtmlBodyText(true);// o corpo conterá URL
string body_without_url = mail.GetHtmlBodyText(false);// o corpo não conterá URL
Console.WriteLine("Corpo com URL: " + body_with_url);
Console.WriteLine("Corpo sem URL: " + body_without_url);