Convertir HTML a otros formatos
Convert HTML to EML
Aspose.Email for .NET proporciona un método para convertir archivos HTML a formato EML usando el MailMessage.Load y MailMessage.Save métodos para cargar el archivo HTML existente y guardarlo en formato EML respectivamente:
var eml = MailMessage.Load("myContent.html", new HtmlLoadOptions());
eml.Save("output.eml", SaveOptions.DefaultEml);
En el ejemplo de código, el HtmlLoadOptions clase le permite especificar opciones adicionales al cargar un MailMessage desde formato HTML. El siguiente ejemplo de código demuestra el uso de esta clase. En el ejemplo, especifica una representación de texto del cuerpo del mensaje:
// 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);
Convert HTML to EMLX
Puede convertir fácilmente archivos HTML a EMLX. Todas las propiedades y clases proporcionadas por la API para la conversión de HTML a EML también están disponibles para este tipo de conversión:
var eml = MailMessage.Load("myContent.html", new HtmlLoadOptions());
eml.Save("output.emlx", SaveOptions.DefaultEmlx);
Para configuraciones adicionales, vea Convert HTML to EML párrafo.
Convert HTML to ICS
Para realizar la tarea, la biblioteca ofrece el Appointment clase para representar y gestionar eventos del calendario. El siguiente ejemplo de código muestra cómo crear contenido HTML de una cita y guardarlo en formato de archivo 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);
Generate MBOX from HTML content
Para realizar la conversión de HTML a MBOX, use el Load método del MailMessage clase, especificando la ruta del archivo de contenido HTML y una instancia de HtmlLoadOptions. Este método analiza el contenido HTML y genera un objeto MailMessage correspondiente, preservando la estructura y el formato del HTML original. Después de cargar el contenido HTML en un objeto MailMessage, escriba el mensaje a un archivo MBOX usando el MboxrdStorageWriter clase:
using (var eml = MailMessage.Load("content.html", new HtmlLoadOptions())){
using (var writer = new MboxrdStorageWriter("output.mbox", false)){
writer.WriteMessage(eml);
}
}
Convert HTML to MHTML
Utilice el Load método del MailMessage clase para cargar el archivo existente, especificando una ruta al mismo y una instancia de HtmlLoadOptions. Este método analiza el contenido HTML y genera un objeto MailMessage correspondiente, preservando la estructura y el formato del HTML original. Después de cargar el contenido HTML en un objeto MailMessage, los desarrolladores pueden guardarlo como un archivo MHTML usando el Guardar método, especificando la ruta de archivo de salida deseada y utilizando el SaveOptions.DefaultMhtml opción:
var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("output.mhtml", SaveOptions.DefaultMhtml);
El MhtSaveOptions la clase proporciona una variedad de opciones para configurar el comportamiento y la configuración del archivo MHTML de salida en lugar de SaveOptions.DefaultMhtml. Con su propiedades, puede especificar opciones adicionales al guardar MailMessage en formato MHTML. Las más populares de ellas son:
- MhtFormatOptions - Le permite personalizar cómo se guarda el mensaje de correo en formato MHT para adaptarse mejor a sus necesidades.
- SaveAttachments - Obtiene o establece un valor que indica si se deben guardar los archivos adjuntos.
- SaveAllHeaders - Define si es necesario guardar todas las cabeceras en el mhtml de salida o no. El valor predeterminado es false.
- PreserveOriginalDate - Define si es necesario conservar la fecha original en el mensaje de correo al guardarlo o no. El valor predeterminado es true.
El siguiente ejemplo de código demuestra cómo se pueden usar estas propiedades:
var mhtSaveOprtions = new MhtSaveOptions
{
MhtFormatOptions = MhtFormatOptions.WriteHeader,
SaveAttachments = true,
SaveAllHeaders = true,
PreserveOriginalDate = true
}
Convertir HTML a MSG
Después de cargar el contenido HTML en un objeto MailMessage, guárdelo como un archivo MSG usando el Guardar método, especificando la ruta de archivo de salida deseada y utilizando el SaveOptions.DefaultMsgUnicode opción. Esta opción asegura que el archivo de salida se guarde en formato MSG con codificación Unicode.
var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("output.msg", SaveOptions.DefaultMsgUnicode);
Adicionalmente, Aspose.Email para .NET ofrece una variedad de funciones avanzadas y opciones para la conversión de HTML a MSG:
Convertir HTML a OFT
Después de cargar el contenido HTML en un objeto MailMessage, guárdelo como un archivo OFT usando el Guardar método, especificando la ruta de archivo de salida deseada y utilizando el SaveOptions.DefaultOft opción:
var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("template.oft", SaveOptions.DefaultOft);
Agregar mensaje con contenido HTML fuente al PST
La conversión de HTML a PST implica crear un nuevo archivo PST (Personal Storage Table) con una nueva carpeta, cargar un archivo HTML y agregarlo a la nueva carpeta:
- Cree una instancia de un objeto PersonalStorage que representa un nuevo archivo PST usando el Create método del PersonalStorage clase.
- Acceda a la carpeta raíz del archivo PST y agregue una subcarpeta a ella usando el AddSubFolder método del FolderInfo clase.
- Cargue el contenido de un archivo HTML en un MapiMessage objeto usando el Load método con una instancia de HtmlLoadOptions para especificar que el contenido está en formato HTML.
- Agregue el objeto MapiMessage cargado (que representa el contenido HTML) a la carpeta dentro del archivo PST usando el 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);
}
Agregar mensaje con contenido HTML fuente al OST
El siguiente ejemplo de código con pasos le mostrará cómo estos componentes trabajan juntos para agregar contenido HTML al archivo OST:
- Cargue un archivo OST existente con el FromFile método del PersonalStorage clase usada para representar el archivo de almacenamiento que guardará los mensajes de correo electrónico.
- Cargue el archivo HTML usando el Load método del MapiMessage clase que representa un mensaje de correo electrónico en formato Microsoft Outlook.
- Especifique HtmlLoadOptions para habilitar opciones adicionales al cargar MailMessage desde formato HTML.
- Recupere la carpeta raíz del archivo OST usando el RootFolder propiedad del PersonalStorage objeto.
- Obtenga la carpeta Bandeja de entrada dentro del archivo OST usando el GetSubFolder método en la carpeta raíz.
- Agregue el objeto MapiMessage cargado (que representa el contenido HTML) a la carpeta Bandeja de entrada usando el AddMessage método en la carpeta.
using (var ost = PersonalStorage.FromFile("storage.ost"))
{
var msg = MapiMessage.Load("content.html", new HtmlLoadOptions());
var folderInfo = ost.RootFolder.GetSubFolder("Inbox");
folderInfo.AddMessage(msg);
}
Convertir HTML a VCF
El siguiente ejemplo de código muestra cómo crear un elemento de contacto, rellenarlo con contenido HTML y guardarlo en un archivo VCF:
- Lea el contenido de un archivo HTML en una variable de cadena usando el método File.ReadAllText.
- Cree un nuevo objeto MapiContact instanciando el MapiContact clase.
- Establezca las propiedades del contacto: nombre visible, dirección de correo electrónico.
- Establezca el contenido del cuerpo del contacto a HTML usando SetBodyContent.
- Guarde el contacto como un archivo VCF usando el Guardar 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)