Convertir HTML a Otros Formatos
Convertir HTML a EML
Aspose.Email para .NET proporciona un método para convertir archivos HTML a formato EML utilizando los métodos MailMessage.Load y MailMessage.Save 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, la clase HtmlLoadOptions 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, se especifica una representación de texto del cuerpo del mensaje:
// Crear una instancia de HtmlLoadOptions
var loadOptions = new HtmlLoadOptions();
// Establecer la propiedad ShouldAddPlainTextView en true para generar una vista de texto plano junto con HTML
loadOptions.ShouldAddPlainTextView = true;
// Cargar un archivo HTML
var mailMessage = MailMessage.Load("input.html", loadOptions);
// Acceder a la vista de texto plano del mensaje de correo electrónico
var plainTextView = mailMessage.GetAlternateViewContent("text/plain");
// Imprimir o procesar further la vista de texto plano
Console.WriteLine("Vista de Texto Plano:");
Console.WriteLine(plainTextView);
Convertir HTML a EMLX
Puedes convertir fácilmente archivos HTML a EMLX. Todas las propiedades y clases proporcionadas por la API para la conversión de HTML a EML están disponibles para este tipo de conversión también:
var eml = MailMessage.Load("myContent.html", new HtmlLoadOptions());
eml.Save("output.emlx", SaveOptions.DefaultEmlx);
Para configuraciones adicionales, consulta el párrafo Convertir HTML a EML.
Convertir HTML a ICS
Para realizar la tarea, la biblioteca ofrece la clase Appointment para representar y gestionar eventos del calendario. El siguiente ejemplo de código demuestra cómo crear una cita a partir del contenido HTML y guardarla en un archivo de formato ICS (iCalendar):
// Contenido HTML de ejemplo
var htmlContent = File.ReadAllText("content.html");
// Crear e inicializar una instancia de la clase Appointment
var appointment = new Appointment(
"Sala de Reuniones 3 en la Sede de la Oficina", // Ubicación
"Reunión Mensual", // Resumen
"Por favor confirma tu disponibilidad.", // Descripción
new DateTime(2015, 2, 8, 13, 0, 0), // Fecha de inicio
new DateTime(2015, 2, 8, 14, 0, 0), // Fecha de finalización
"from@domain.com", // Organizador
"attendees@domain.com")
{
HtmlDescription = htmlContent
};
// Guardar el evento en un archivo ICS
appointment.Save("output.ics", AppointmentSaveFormat.Ics);
Generar MBOX desde contenido HTML
Para realizar la conversión de HTML a MBOX, utiliza el método Load de la clase MailMessage, 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 formato del HTML original. Después de cargar el contenido HTML en un objeto MailMessage, escribe el mensaje en un archivo MBOX utilizando la clase MboxrdStorageWriter:
using (var eml = MailMessage.Load("content.html", new HtmlLoadOptions()))
{
using (var writer = new MboxrdStorageWriter("output.mbox", false))
{
writer.WriteMessage(eml);
}
}
Convertir HTML a MHTML
Utiliza el método Load de la clase MailMessage para cargar el archivo existente, especificando una ruta hacia él y una instancia de HtmlLoadOptions. Este método analiza el contenido HTML y genera un objeto MailMessage correspondiente, preservando la estructura y formato del HTML original. Después de cargar el contenido HTML en un objeto MailMessage, los desarrolladores pueden guardarlo como un archivo MHTML utilizando el método Save, especificando la ruta de archivo de salida deseada y utilizando la opción SaveOptions.DefaultMhtml:
var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("output.mhtml", SaveOptions.DefaultMhtml);
La clase MhtSaveOptions proporciona una variedad de opciones para configurar el comportamiento y configuraciones del archivo de salida MHTML en lugar de SaveOptions.DefaultMhtml. Con sus propiedades, puedes especificar opciones adicionales al guardar MailMessage en formato MHTML. Las más populares son:
- MhtFormatOptions - Te permite personalizar cómo se guarda el mensaje de correo electrónico en formato MHT para adaptarse mejor a tus necesidades.
- SaveAttachments - Obtiene o establece un valor que indica si se deben guardar los archivos adjuntos.
- SaveAllHeaders - Define si se necesita guardar todos los encabezados en el MHTML de salida o no. El valor predeterminado es falso.
- PreserveOriginalDate - Define si se debe mantener la fecha original en el mensaje de correo al guardar o no. El valor predeterminado es verdadero.
El siguiente ejemplo de código demuestra cómo se pueden usar estas propiedades:
var mhtSaveOptions = 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árdalo como un archivo MSG utilizando el método Save, especificando la ruta de archivo de salida deseada y utilizando la opción 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);
Además, Aspose.Email para .NET ofrece una gama de características y opciones avanzadas para la conversión de HTML a MSG:
Convertir HTML a OFT
Después de cargar el contenido HTML en un objeto MailMessage, guárdalo como un archivo OFT utilizando el método Save, especificando la ruta de archivo de salida deseada y utilizando la opción SaveOptions.DefaultOft opción:
var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("template.oft", SaveOptions.DefaultOft);
Agregar un mensaje con contenido HTML de origen a PST
La conversión de HTML a PST implica crear un nuevo archivo PST (Tabla de Almacenamiento Personal) con una nueva carpeta, cargar un archivo HTML y agregarlo a la nueva carpeta:
- Crea una instancia de un objeto PersonalStorage que represente un nuevo archivo PST utilizando el método Create de la clase PersonalStorage.
- Accede a la carpeta raíz del archivo PST y agrega una subcarpeta usando el método AddSubFolder de la clase FolderInfo.
- Carga el contenido de un archivo HTML en un objeto MapiMessage utilizando el método Load con una instancia de HtmlLoadOptions para especificar que el contenido está en formato HTML.
- Agrega el objeto MapiMessage cargado (que representa el contenido HTML) a la carpeta dentro del archivo PST utilizando el 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);
}
Agregar un mensaje con contenido HTML de origen a OST
El siguiente ejemplo de código con pasos te mostrará cómo estos componentes trabajan juntos para agregar contenido HTML a un archivo OST:
- Carga un archivo OST existente utilizando el método FromFile de la clase PersonalStorage que se utiliza para representar el archivo de almacenamiento que contendrá los mensajes de correo electrónico.
- Carga el archivo HTML usando el método Load de la clase MapiMessage que representa un mensaje de correo electrónico en formato Microsoft Outlook.
- Especifica HtmlLoadOptions para habilitar opciones adicionales al cargar MailMessage desde formato HTML.
- Recupera la carpeta raíz del archivo OST utilizando la propiedad RootFolder del objeto PersonalStorage.
- Obtén la carpeta de la Bandeja de entrada dentro del archivo OST utilizando el método GetSubFolder en la carpeta raíz.
- Agrega el objeto MapiMessage cargado (que representa el contenido HTML) a la carpeta de la Bandeja de entrada utilizando el método AddMessage 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 demuestra cómo crear un elemento de contacto, poblarlo con contenido HTML y guardarlo en un archivo VCF:
- Lee el contenido de un archivo HTML en una variable de cadena utilizando el método File.ReadAllText.
- Crea un nuevo objeto MapiContact instanciando la clase MapiContact.
- Establece las propiedades del contacto: nombre a mostrar, dirección de correo electrónico.
- Establece el contenido del cuerpo del contacto en HTML usando SetBodyContent.
- Guarda el contacto como un archivo VCF utilizando el método Save.
var content = File.ReadAllText("content.html");
// Crear un nuevo MapiContact
var contact = new MapiContact();
contact.NameInfo.DisplayName = "John Doe";
contact.ElectronicAddresses.Email1.EmailAddress = "john.doe@example.com";
contact.SetBodyContent(content, BodyContentType.Html);
// Guardar el contacto en un archivo VCF
contact.Save("contact.vcf", ContactSaveFormat.VCard)