Converter EML para HTML
Converter EML para HTML
Para integrar o conteúdo de e-mail em aplicações web, a conversão de EML para HTML é a escolha certa, facilitando uma apresentação de e-mail visualmente atraente.
Para converter EML para HTML, você precisará das seguintes classes:
- A classe MailMessage é usada para criar um objeto representando uma mensagem de e-mail. Ela permite acessar propriedades da mensagem, como assunto, corpo, remetente e endereços dos destinatários, etc. Com seus métodos, você pode criar, carregar e analisar, modificar, salvar e-mails ou realizar outras manipulações com eles.
- A classe SaveOptions fornece opções para salvar mensagens de e-mail em vários formatos. Ela permite que os usuários personalizem a forma como as mensagens de e-mail são salvas em diferentes formatos. Com esta classe, os usuários podem especificar opções para salvar anexos, cabeçalhos, metadados e propriedades de mensagens de e-mail, definir opções de codificação ou escolher se devem salvar mensagens com criptografia ou não.
No exemplo de código abaixo, essas classes trabalham juntas para carregar um arquivo EML existente e especificar o formato da mensagem como EML. Subsequentemente, elas salvam a mensagem de e-mail carregada como um arquivo HTML usando as opções de salvamento HTML padrão especificadas:
- Use o método MailMessage.Load() para carregar o arquivo existente em um objeto MailMessage especificando o formato da mensagem.
- Salve o objeto MailMessage carregado como um arquivo HTML usando o método save. Use SaveOptions.DefaultHtml() para especificar as opções de salvamento para o formato HTML.
// Inicializar e carregar um arquivo EML existente especificando o MessageFormat
var message = MailMessage.Load("myMessage.eml");
message.Save("output.html", SaveOptions.DefaultHtml);
Salvar Recursos EML em um Arquivo Separado
Aspose.Email fornece a enumeração ResourceRenderingMode permitindo que os desenvolvedores manipulem recursos em um arquivo HTML. No exemplo de código abaixo, essa enumeração é usada para salvar recursos em um arquivo e inserir na HTML a tag ‘src’ com o caminho para este arquivo:
- Carregue a mensagem de e-mail do arquivo de origem usando o método MapiMessage.Load.
- Crie uma instância de HtmlSaveOptions com opções de renderização e recursos especificados.
- Salve a mensagem de e-mail carregada como um arquivo HTML no local de destino usando o método Save com o parâmetro HtmlSaveOptions.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);
Incorporar Recursos em um Arquivo HTML
Em alguns casos, é necessário incorporar recursos, como imagens, diretamente no arquivo HTML para distribuição e apresentação sem problemas. Com Aspose.Email para .NET, você pode facilmente realizar isso usando a enumeração ResourceRenderingMode:
- Carregue a mensagem de e-mail do arquivo de origem usando o método MapiMessage.Load.
- Crie um novo objeto HtmlSaveOptions e defina a propriedade ResourceRenderingMode para EmbedIntoHtml.
- Salve a mensagem de e-mail carregada como um arquivo HTML usando o método Save, especificando o caminho do arquivo de destino e passando o objeto HtmlSaveOptions como parâmetro para incorporar recursos no arquivo HTML.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);
Converter EML para ICS
O seguinte exemplo de código demonstra como extrair dados de eventos de calendário de um arquivo EML e salvá-los em um arquivo ICS separado para uso ou manipulação posterior.
// Carregar o arquivo EML
var eml = MailMessage.Load("message.eml");
// Encontrar a visualização alternativa com MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// Se uma visualização ICS for encontrada, salve-a em um arquivo
if (icsView != null)
{
File.WriteAllText("appointment.ics", icsView);
}
Personalização
Aspose.Email para .NET fornece ferramentas para personalizar o conteúdo ICS (iCalendar) extraído de arquivos EML (Email Eletrônico).
Personalizar os detalhes do evento
O seguinte exemplo de código demonstra como definir vários detalhes da nomeação, como o resumo, localização e descrição. O código utiliza a classe Appointment que representa compromissos ou eventos de calendário em formato ICS (iCalendar). A classe fornece propriedades e métodos para criar, modificar e gerenciar eventos de calendário programaticamente.
// Carregar o arquivo EML
var eml = MailMessage.Load("message.eml");
// Encontrar a visualização alternativa com MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// Se uma visualização ICS for encontrada, carregue-a para um objeto da classe Appointment
var appointment = Appointment.Load(new MemoryStream(Encoding.UTF8.GetBytes(icsView)));
// Personalize os detalhes do evento
appointment.Summary = "Resumo Personalizado do Evento";
appointment.Location = "Localização Personalizada";
appointment.Description = "Descrição Personalizada do Evento";
// Adicione ou modifique os participantes conforme necessário
appointment.Attendees.Clear();
appointment.Attendees.Add("custom@example.com");
// Salve o conteúdo ICS personalizado em um arquivo
appointment.Save("customized_appointment.ics");
Criar um padrão de recorrência
O seguinte exemplo de código demonstra como criar um padrão de recorrência semanal para um compromisso, onde o compromisso ocorre a cada 5 semanas aos sábados. O código utiliza a propriedade Recurrence da classe Appointment que obtém ou define o padrão de recorrência.
var pattern = new WeeklyRecurrencePattern(5, 7);
pattern.EndDate = new DateTime(2023, 8, 7);
appointment.Recurrence = pattern;
Adicionar EML ao MBOX
MBOX é um formato comumente usado para armazenar várias mensagens de e-mail em um único arquivo, tornando-o adequado para arquivamento e migração de e-mails. Use a classe MboxrdStorageWriter para escrever mensagens de e-mail em um arquivo MBOX. O seguinte exemplo de código demonstra como realizar essa tarefa:
using (var message = MailMessage.Load("inputFile.eml")){
using (var writer = new MboxrdStorageWriter("output.mbox", false)){
writer.WriteMessage(message);
}
}
Converter EML para MHTML
Com o Aspose.Email para .NET, você pode facilmente converter arquivos EML para o formato MHTML para vários propósitos, como arquivamento, compatibilidade, visualização offline, etc. Carregue a mensagem de e-mail usando o MailMessage.Load, então use a classe MhtSaveOptions como um parâmetro para o método MailMessage.Save para especificar o formato do arquivo de saída ao salvar a mensagem como um arquivo separado:
// Inicializar e carregar um arquivo EML existente especificando o MessageFormat
var message = MailMessage.Load("myMessage.eml");
var mhtSaveOptions = new MhtSaveOptions();
message.Save("output.mhtml", mhtSaveOptions);
A classe MhtSaveOptions fornece várias opções para personalizar os arquivos MHTML de saída para atender às suas necessidades específicas:
-
Preservar o formato de data original. Você pode optar por preservar a formatação original das mensagens de e-mail durante o processo de conversão:
saveOptions.PreserveOriginalDate = true;
-
Definir a codificação de saída. Você pode especificar a codificação a ser usada ao escrever os arquivos MHTML de saída:
saveOptions.OutputEncoding = Encoding.UTF8;
-
Incluir anexos. Isso pode ser útil se você deseja preservar anexos ao converter e-mails para o formato MHTML:
saveOptions.SaveAttachments = true;
Converter EML para MSG
Seja para migrar dados de e-mail, arquivar mensagens ou integrar-se ao Microsoft Outlook, o Aspose.Email fornece soluções para atingir suas metas. Os arquivos MSG são amplamente utilizados pelo Microsoft Outlook. Para conversão de EML para MSG, use o método MailMessage.Load para carregar o arquivo EML existente especificando como ele será carregado com EmlLoadOptions.
O seguinte exemplo de código demonstra como converter arquivos EML para formato MSG:
// Carregar mensagem de e-mail
using (var message = MailMessage.Load("sourceFile.eml", new EmlLoadOptions())){
// Salvar como MSG
var msgSaveOptions = new MsgSaveOptions();
message.Save("output.msg", msgSaveOptions);
}
Converter EML para OFT
Para converter arquivos EML para o formato de Modelo do Outlook (OFT), carregue a mensagem de e-mail existente usando o método MailMessage.Load e salve-a com MailMessage.Save especificando as opções padrão para salvar uma mensagem no formato OFT:
// Carregar o arquivo EML a ser convertido
var message = MailMessage.Load("My File.eml");
// salvar EML como um OFT
message.Save("Saved File.oft", SaveOptions.DefaultOft);
Adicionar EML ao PST
Para converter arquivos EML para o formato de Tabela de Armazenamento Pessoal (PST), carregue a mensagem usando o método MapiMessage.Load, crie o arquivo de saída com PersonalStorage.Create e adicione o e-mail à pasta de Caixa de Entrada criada no arquivo de armazenamento usando o método AddMessage:
using (var msg = MapiMessage.Load("sourceFile.eml", new EmlLoadOptions()))
{
using (var personalStorage = PersonalStorage.Create("outputFile.pst", FileFormatVersion.Unicode))
{
var inbox = personalStorage.RootFolder.AddSubFolder("Inbox");
inbox.AddMessage(msg);
}
}
Adicionar EML ao OST
Os desenvolvedores podem facilmente converter arquivos EML para o formato de Tabela de Armazenamento Offline do Outlook (OST), permitindo integração com o Microsoft Outlook. O seguinte exemplo de código demonstra como adicionar uma mensagem EML a um arquivo OST:
using (var ost = PersonalStorage.FromFile("storage.ost"))
{
// Carregar o arquivo EML
var msg = MapiMessage.Load("message.eml", new EmlLoadOptions());
// Adicionar a mensagem EML ao arquivo OST
var folderInfo = ost.RootFolder.GetSubFolder("Inbox");
folderInfo.AddMessage(msg);
}
O parâmetro EmlLoadOptions especifica opções adicionais para carregar arquivos EML, como preservar formatos de mensagens incorporadas, remover assinaturas e muito mais.
Converter EML para VCF
Aspose.Email para .NET oferece funcionalidade para converter arquivos EML para o formato vCard (VCF), permitindo que os desenvolvedores extraiam informações de contato de mensagens de e-mail. Para esse propósito, a biblioteca oferece o método GetAlternateViewContent da classe MailMessage permitindo que os desenvolvedores acessem visualizações alternadas dentro das mensagens de e-mail e extraiam o conteúdo VCF incorporado dentro dos arquivos EML para uso posterior:
// Carregar o arquivo EML
var eml = MailMessage.Load("message.eml");
// Encontrar a visualização alternativa com MediaType "text/vcard" (VCF)
var vcfView = eml.GetAlternateViewContent("text/vcard");
// Se uma visualização VCF for encontrada, salve-a em um arquivo
if (vcfView != null)
{
File.WriteAllText("contact.vcf", vcfView);
}