Converter HTML para Outros Formatos
Converter HTML para EML
Aspose.Email for .NET fornece um método para converter arquivos HTML para o formato EML usando o MailMessage.Load e MailMessage.Save métodos 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, o HtmlLoadOptions class permite especificar opções adicionais ao carregar um MailMessage do formato HTML. O exemplo de código a seguir demonstra o uso desta classe. No exemplo, ele especifica uma representação textual do corpo da mensagem:
// Create an instance of HtmlLoadOptions
var loadOptions = new HtmlLoadOptions();
// Set the ShouldAddPlainTextView property to true to generate a plain text view along with HTML
loadOptions.ShouldAddPlainTextView = true;
// Load an HTML file
var mailMessage = MailMessage.Load("input.html", loadOptions);
// Access the plain text view of the email message
var plainTextView = mailMessage.GetAlternateViewContent("text/plain");
// Print or further process the plain text view
Console.WriteLine("Plain Text View:");
Console.WriteLine(plainTextView);
Converter HTML para EMLX
Você pode converter facilmente arquivos HTML para EMLX. Todas as propriedades e classes fornecidas pela API para conversão de HTML para EML também estão disponíveis para este tipo de conversão:
var eml = MailMessage.Load("myContent.html", new HtmlLoadOptions());
eml.Save("output.emlx", SaveOptions.DefaultEmlx);
Para configurações adicionais, veja Converter HTML para EML parágrafo.
Converter HTML para ICS
Para executar a tarefa, a biblioteca oferece o Appointment class para representar e gerenciar eventos de calendário. O exemplo de código a seguir demonstra como criar um conteúdo HTML de formulário de compromisso e salvá-lo no formato de arquivo ICS (iCalendar):
// Sample HTML content
var htmlContent = File.ReadAllText("content.html");
// Create and initialize an instance of the Appointment class
var appointment = new Appointment(
"Meeting Room 3 at Office Headquarters",// Location
"Monthly Meeting", // Summary
"Please confirm your availability.", // Description
new DateTime(2015, 2, 8, 13, 0, 0), // Start date
new DateTime(2015, 2, 8, 14, 0, 0), // End date
"from@domain.com", // Organizer
"attendees@domain.com")
{
HtmlDescription = htmlContent
};
// Save the event to an ICS file
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 Load método do MailMessage class, 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 o MboxrdStorageWriter classe:
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 Load método do MailMessage class 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 Salvar método, especificando o caminho de arquivo de saída desejado e utilizando o SaveOptions.DefaultMhtml opção:
var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("output.mhtml", SaveOptions.DefaultMhtml);
O MhtSaveOptions class 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 sua propriedades, você pode especificar opções adicionais ao salvar MailMessage no formato MHTML. As mais populares são:
- MhtFormatOptions - Permite personalizar como a mensagem de e‑mail é salva no formato MHT para atender melhor às suas necessidades.
- SaveAttachments - Obtém ou define um valor que indica 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 é false.
- PreserveOriginalDate - Define se é necessário manter a data original na mensagem de e‑mail ao salvar ou não. O valor padrão é true.
O exemplo de código a seguir demonstra como essas propriedades podem ser usadas:
var mhtSaveOprtions = new MhtSaveOptions
{
MhtFormatOptions = MhtFormatOptions.WriteHeader,
SaveAttachments = true,
SaveAllHeaders = true,
PreserveOriginalDate = true
}
Converter HTML para MSG
Depois de carregar o conteúdo HTML em um objeto MailMessage, salve‑o como um arquivo MSG usando o Salvar método, especificando o caminho de arquivo de saída desejado e utilizando o SaveOptions.DefaultMsgUnicode opção. 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, o Aspose.Email para .NET oferece uma variedade de recursos avançados e opções para conversão de HTML para MSG:
Converter HTML para OFT
Depois de carregar o conteúdo HTML em um objeto MailMessage, salve‑o como um arquivo OFT usando o Salvar método, especificando o caminho de arquivo de saída desejado e utilizando o SaveOptions.DefaultOft opção:
var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("template.oft", SaveOptions.DefaultOft);
Adicionar mensagem com conteúdo HTML de origem ao PST
A conversão de HTML para PST envolve criar um novo arquivo PST (Personal Storage Table) com uma nova pasta, carregar um arquivo HTML e adicioná‑lo à nova pasta:
- Crie uma instância de um objeto PersonalStorage que representa um novo arquivo PST usando o Criar método do PersonalStorage classe.
- Acesse a pasta raiz do arquivo PST e adicione uma subpasta a ela usando o AddSubFolder método do FolderInfo classe.
- Carregue o conteúdo de um arquivo HTML em um MapiMessage objeto usando o Load método 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 AddMessage método.
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 de origem ao OST
O exemplo de código a seguir com etapas mostrará como esses componentes trabalham juntos para adicionar conteúdo HTML ao arquivo OST:
- Carregue um arquivo OST existente com o FromFile método do PersonalStorage classe usada para representar o arquivo de armazenamento que armazenará as mensagens de e‑mail.
- Carregue o arquivo HTML usando o Load método do MapiMessage classe que representa uma mensagem de e‑mail no formato Microsoft Outlook.
- Especifique HtmlLoadOptions para habilitar opções adicionais ao carregar MailMessage a partir do formato HTML.
- Recupere a pasta raiz do arquivo OST usando o RootFolder propriedade do PersonalStorage objeto.
- Obtenha a pasta Inbox dentro do arquivo OST usando o GetSubFolder método na pasta raiz.
- Adicione o objeto MapiMessage carregado (representando o conteúdo HTML) à pasta Inbox usando o AddMessage método 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 exemplo de código a seguir demonstra como criar um item de contato, preenchê‑lo com conteúdo HTML e salvá‑lo em um arquivo VCF:
- Leia o conteúdo de um arquivo HTML para uma variável de string usando o método File.ReadAllText.
- Crie um novo objeto MapiContact instanciando o MapiContact classe.
- Defina as propriedades do contato: nome de exibição, endereço de e‑mail.
- Defina o conteúdo do corpo do contato como HTML usando SetBodyContent.
- Salve o contato como um arquivo VCF usando o Salvar método.
var content = File.ReadAllText("content.html");
// Create a new MapiContact
var contact = new MapiContact();
contact.NameInfo.DisplayName = "John Doe";
contact.ElectronicAddresses.Email1.EmailAddress = "john.doe@example.com";
contact.SetBodyContent(content, BodyContentType.Html);
// Save the contact to a VCF file
contact.Save("contact.vcf", ContactSaveFormat.VCard)