Converter e-mail para HTML em C# .NET

HTML é um formato amplamente utilizado e facilmente acessível que pode ser visualizado por uma ampla gama de plataformas, navegadores da web, incluindo computadores de mesa e dispositivos móveis. Em contraste, arquivos EML e MSG podem exigir software ou clientes de e-mail específicos para serem visualizados, o que pode torná-los mais difíceis de acessar e visualizar ao longo do tempo. Portanto, converter arquivos MSG ou EML para HTML torna-os mais fáceis de visualizar, particularmente para destinatários que podem não ter clientes de e-mail ou software compatíveis.

Além disso, arquivos HTML são mais fáceis de arquivar e permanecem em um formato pesquisável e indexado.

Este artigo apresenta um algoritmo para converter rápida e facilmente arquivos MSG ou EML para o formato HTML usando C#, independentemente do propósito subjacente. Nosso método confiável garante que o conteúdo do e-mail, incluindo imagens incorporadas, seja totalmente preservado sem qualquer perda. Isso garante que a integridade do e-mail seja mantida durante todo o processo de conversão.

O artigo cobre os seguintes tópicos:

API C# para converter arquivos EML/MSG para HTML

Para a conversão de arquivos EML/MSG para HTML, vamos usar Aspose.Email for .NET. É uma API de processamento de e-mails que permite manipular e-mails e trabalhar com formatos de arquivo de clientes de e-mail populares, como Thunderbird, Outlook, etc. Você pode baixar a DLL da API ou instalá-la a partir do NuGet usando o seguinte comando:

PM> Install-Package Aspose.Email

Converter arquivos EML/MSG para HTML salvando imagens separadamente

Um arquivo MSG típico tem a seguinte visualização:

Visualização do arquivo MSG

Com nossa API, você pode definir qualquer diretório em seu dispositivo e salvar o arquivo HTML de destino com imagens em uma pasta separada:

Visualização do arquivo HTML

Use o seguinte exemplo de código para converter uma mensagem de e-mail no formato MSG ou EML para um arquivo HTML com imagens, que são salvas em um diretório de destino. O código realiza os seguintes passos:

  1. Primeiro, especifica os caminhos de origem e destino para o arquivo MSG/EML de origem e o arquivo HTML, respectivamente, assim como o diretório de destino para os recursos.
  2. Carrega o arquivo MSG ou EML usando o método MailMessage.Load.
  3. Cria um objeto HtmlSaveOptions e define a propriedade ResourceRenderingMode para SaveToFile.
  4. Define um delegate para o evento SaveResourceHandler de HtmlSaveOptions.
  5. Cria um diretório de destino para os recursos dentro do delegate se ele ainda não existir.
  6. Salva cada recurso em um arquivo com um nome de arquivo dentro do delegate com base no tipo de conteúdo do recurso.
  7. Chama o método Save da instância MailMessage, passando o nome do arquivo HTML de destino e a instância HtmlSaveOptions para salvar o e-mail em formato HTML.

Converter arquivos EML/MSG para HTML salvando imagens dentro do HTML

Às vezes, você pode preferir converter arquivos EML/MSG para HTML mantendo imagens incorporadas dentro do HTML.

Imagem dentro do HTML em um editor de texto

O seguinte trecho de código demonstra como converter um arquivo MSG ou EML para o formato HTML em C# e salvar as imagens dentro do HTML. O código realiza os seguintes passos:

  1. Define os caminhos de origem e destino para o arquivo de e-mail e a saída HTML.
  2. Carrega o arquivo MSG ou EML usando o método MailMessage.Load.
  3. Cria uma nova instância da classe HtmlSaveOptions, que permite configurar como o e-mail é salvo como HTML.
  4. Configura a instância HtmlSaveOptions para incorporar os recursos, incluindo imagens, diretamente no HTML.
  5. Chama o método Save da instância MailMessage, passando o nome do arquivo HTML de destino e a instância HtmlSaveOptions para salvar o e-mail em formato HTML.

Salvando HTML com um cabeçalho

Como uma variante opcional, você pode salvar um HTML com um cabeçalho. O seguinte trecho de código demonstra como salvar um HTML com um cabeçalho em C#:

Como resultado, um cabeçalho de texto será adicionado ao HTML de destino:

Cabeçalho de texto

Conclusão

Para resumir, neste artigo você aprendeu sobre a conveniência do formato HTML para arquivar e gerenciar seus arquivos e como executar a conversão de EML ou MSG em C# usando a biblioteca Aspose.Email for .NET. Você pode ver quão rápido e fácil é o processo de conversão apenas com algumas linhas de código. Caso você tenha alguma dúvida, sinta-se à vontade para escrever em nosso fórum de suporte gratuito. Você também pode aprender mais sobre Aspose.Email for .NET, suas características e facilidades em nossa documentação.

Veja Também