Converter HTML para Outros Formatos
Converter HTML para EML
Aspose.Email para .NET fornece um método para converter arquivos HTML para o formato EML usando os métodos MailMessage.Load e MailMessage.Save para carregar o arquivo HTML existente e salvá-lo no formato EML, respectivamente:
var eml = MailMessage.Load("myContent.html", new HtmlLoadOptions());
eml.Save("output.eml", SaveOptions.DefaultEml);
No exemplo de código, a classe HtmlLoadOptions permite especificar opções adicionais ao carregar um MailMessage do formato HTML. O seguinte exemplo de código demonstra o uso dessa classe. No exemplo, ele especifica uma representação textual do corpo da mensagem:
// Criar uma instância de HtmlLoadOptions
var loadOptions = new HtmlLoadOptions();
// Definir a propriedade ShouldAddPlainTextView como verdadeira para gerar uma visualização de texto simples juntamente com o HTML
loadOptions.ShouldAddPlainTextView = true;
// Carregar um arquivo HTML
var mailMessage = MailMessage.Load("input.html", loadOptions);
// Acessar a visualização de texto simples da mensagem de email
var plainTextView = mailMessage.GetAlternateViewContent("text/plain");
// Imprimir ou processar a visualização de texto simples
Console.WriteLine("Visualização em Texto Simples:");
Console.WriteLine(plainTextView);
Converter HTML para EMLX
Você pode facilmente converter arquivos HTML para EMLX. Todas as propriedades e classes fornecidas pela API para conversão de HTML para EML estão disponíveis para este tipo de conversão também:
var eml = MailMessage.Load("myContent.html", new HtmlLoadOptions());
eml.Save("output.emlx", SaveOptions.DefaultEmlx);
Para configurações adicionais, consulte o parágrafo Converter HTML para EML.
Converter HTML para ICS
Para realizar a tarefa, a biblioteca oferece a classe Appointment para representar e gerenciar eventos de calendário. O seguinte exemplo de código demonstra como criar uma reunião a partir do conteúdo HTML e salvá-la em um arquivo ICS (iCalendar):
// Conteúdo HTML de exemplo
var htmlContent = File.ReadAllText("content.html");
// Criar e inicializar uma instância da classe Appointment
var appointment = new Appointment(
"Sala de Reunião 3 na Sede do Escritório", // Localização
"Reunião Mensal", // Resumo
"Por favor, confirme sua disponibilidade.", // Descrição
new DateTime(2015, 2, 8, 13, 0, 0), // Data de início
new DateTime(2015, 2, 8, 14, 0, 0), // Data de término
"from@domain.com", // Organizador
"attendees@domain.com")
{
HtmlDescription = htmlContent
};
// Salvar o evento em um arquivo ICS
appointment.Save("output.ics", AppointmentSaveFormat.Ics);
Gerar MBOX a partir do conteúdo HTML
Para realizar a conversão de HTML para MBOX, use o método Load da classe MailMessage, especificando o caminho do arquivo de conteúdo HTML e uma instância de HtmlLoadOptions. Este método analisa o conteúdo HTML e gera um objeto MailMessage correspondente, preservando a estrutura e a formatação do HTML original. Após carregar o conteúdo HTML em um objeto MailMessage, escreva a mensagem em um arquivo MBOX usando a classe MboxrdStorageWriter:
using (var eml = MailMessage.Load("content.html", new HtmlLoadOptions())){
using (var writer = new MboxrdStorageWriter("output.mbox", false)){
writer.WriteMessage(eml);
}
}
Converter HTML para MHTML
Use o método Load da classe MailMessage para carregar o arquivo existente, especificando um caminho para ele e uma instância de HtmlLoadOptions. Este método analisa o conteúdo HTML e gera um objeto MailMessage correspondente, preservando a estrutura e a formatação do HTML original. Após carregar o conteúdo HTML em um objeto MailMessage, os desenvolvedores podem salvá-lo como um arquivo MHTML usando o método Save, especificando o caminho do arquivo de saída desejado e utilizando a opção SaveOptions.DefaultMhtml:
var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("output.mhtml", SaveOptions.DefaultMhtml);
A classe MhtSaveOptions fornece uma variedade de opções para configurar o comportamento e as configurações do arquivo MHTML de saída em vez de SaveOptions.DefaultMhtml. Com suas propriedades, você pode especificar opções adicionais ao salvar o MailMessage no formato MHTML. As mais populares são:
- MhtFormatOptions - Permite personalizar como a mensagem de email é salva no formato MHT para melhor atender às suas necessidades.
- SaveAttachments - Obtém ou define um valor indicando se os anexos devem ser salvos.
- SaveAllHeaders - Define se é necessário salvar todos os cabeçalhos no mhtml de saída ou não. O valor padrão é falso.
- PreserveOriginalDate - Define se é necessário manter a data original na mensagem de email ao salvar ou não. O valor padrão é verdadeiro.
O seguinte exemplo de código demonstra como essas propriedades podem ser usadas:
var mhtSaveOprtions = new MhtSaveOptions
{
MhtFormatOptions = MhtFormatOptions.WriteHeader,
SaveAttachments = true,
SaveAllHeaders = true,
PreserveOriginalDate = true
}
Converter HTML para MSG
Após carregar o conteúdo HTML em um objeto MailMessage, salve-o como um arquivo MSG usando o método Save, especificando o caminho do arquivo de saída desejado e utilizando a opção SaveOptions.DefaultMsgUnicode neste caso. Esta opção garante que o arquivo de saída seja salvo no formato MSG com codificação Unicode.
var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("output.msg", SaveOptions.DefaultMsgUnicode);
Além disso, Aspose.Email para .NET oferece uma gama de recursos e opções avançadas para conversão de HTML para MSG:
Converter HTML para OFT
Após carregar o conteúdo HTML em um objeto MailMessage, salve-o como um arquivo OFT usando o método Save, especificando o caminho do arquivo de saída desejado e utilizando a opção SaveOptions.DefaultOft nesta situação:
var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("template.oft", SaveOptions.DefaultOft);
Adicionar mensagem com conteúdo HTML fonte ao PST
A conversão de HTML para PST envolve a criação de um novo arquivo PST (Tabela de Armazenamento Pessoal) com uma nova pasta, carregando um arquivo HTML e adicionando-o à nova pasta:
- Crie uma instância de um objeto PersonalStorage que represente um novo arquivo PST usando o método Create da classe PersonalStorage.
- Acesse a pasta raiz do arquivo PST e adicione uma subpasta a ela usando o método AddSubFolder da classe FolderInfo.
- Carregue o conteúdo de um arquivo HTML em um objeto MapiMessage usando o método Load com uma instância de HtmlLoadOptions para especificar que o conteúdo está no formato HTML.
- Adicione o objeto MapiMessage carregado (representando o conteúdo HTML) à pasta dentro do arquivo PST usando o método AddMessage.
using (var pst = PersonalStorage.Create("outputFile.pst", FileFormatVersion.Unicode))
{
var inbox = pst.RootFolder.AddSubFolder("Inbox");
var msg = MapiMessage.Load("content.html", new HtmlLoadOptions());
inbox.AddMessage(msg);
}
Adicionar mensagem com conteúdo HTML fonte ao OST
O seguinte exemplo de código com etapas mostrará como esses componentes funcionam juntos para adicionar conteúdo HTML a um arquivo OST:
- Carregue um arquivo OST existente com o método FromFile da classe PersonalStorage usado para representar o arquivo de armazenamento que armazenará as mensagens de email.
- Carregue o arquivo HTML usando o método Load da classe MapiMessage que representa uma mensagem de email no formato Microsoft Outlook.
- Especifique HtmlLoadOptions para habilitar opções adicionais ao carregar MailMessage do formato HTML.
- Recupere a pasta raiz do arquivo OST usando a propriedade RootFolder do objeto PersonalStorage.
- Obtenha a pasta Inbox dentro do arquivo OST usando o método GetSubFolder na pasta raiz.
- Adicione o objeto MapiMessage carregado (representando o conteúdo HTML) à pasta Inbox usando o método AddMessage na pasta.
using (var ost = PersonalStorage.FromFile("storage.ost"))
{
var msg = MapiMessage.Load("content.html", new HtmlLoadOptions());
var folderInfo = ost.RootFolder.GetSubFolder("Inbox");
folderInfo.AddMessage(msg);
}
Converter HTML para VCF
O seguinte exemplo de código demonstra como criar um item de contato, populá-lo com conteúdo HTML e salvá-lo em um arquivo VCF:
- Leia o conteúdo de um arquivo HTML em uma variável string usando o método File.ReadAllText.
- Crie um novo objeto MapiContact instanciando a classe MapiContact.
- Defina as propriedades do contato: nome de exibição, endereço de email.
- Defina o conteúdo do corpo do contato como HTML usando SetBodyContent.
- Salve o contato como um arquivo VCF usando o método Save.
var content = File.ReadAllText("content.html");
// Criar um novo MapiContact
var contact = new MapiContact();
contact.NameInfo.DisplayName = "John Doe";
contact.ElectronicAddresses.Email1.EmailAddress = "john.doe@example.com";
contact.SetBodyContent(content, BodyContentType.Html);
// Salvar o contato em um arquivo VCF
contact.Save("contact.vcf", ContactSaveFormat.VCard);