Convert EML to HTML
Convert EML to HTML
Para integrar contenido de correo en aplicaciones web, la conversión de EML a HTML es la opción adecuada, facilitando una presentación de correo visualmente atractiva.
Para convertir EML a HTML, necesitará las siguientes clases:
- MailMessage clase se usa para crear un objeto que representa un mensaje de correo electrónico. Permite acceder a propiedades del mensaje, como asunto, cuerpo, remitente y direcciones de destinatarios, etc. Con sus métodos, puede crear, cargar y analizar, modificar, guardar correos, o realizar otras manipulaciones con ellos.
- SaveOptions clase proporciona opciones para guardar mensajes de correo en varios formatos. Permite a los usuarios personalizar la forma en que los mensajes se guardan en diferentes formatos. Con esta clase, los usuarios pueden especificar opciones para guardar adjuntos, cabeceras, metadatos y propiedades de los mensajes, establecer opciones de codificación o elegir si guardar los mensajes con cifrado o no.
En el ejemplo de código a continuación, estas clases trabajan juntas para cargar un archivo EML existente y especificar el formato del mensaje como EML. Posteriormente, guardan el mensaje de correo cargado como un archivo HTML usando las opciones predeterminadas de guardado HTML especificadas:
- Utilice el MailMessage.Load() método para cargar el archivo existente en un objeto MailMessage especificando el formato del mensaje.
- Guarde el objeto MailMessage cargado como un archivo HTML usando el guardar método. Use SaveOptions.DefaultHtml() para especificar las opciones de guardado para el formato HTML.
// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
message.Save("output.html", SaveOptions.DefaultHtml);
Save EML Resources in a Separate File
Aspose.Email proporciona el ResourceRenderingMode enumeración que permite a los desarrolladores manipular recursos en un archivo HTML. En el siguiente ejemplo de código, este enum se usa para guardar recursos en un archivo e insertar en HTML la etiqueta ‘src’ con la ruta a este archivo:
- Cargue el mensaje de correo desde el archivo fuente usando el MapiMessage.Load método.
- Cree una instancia de HtmlSaveOptions con opciones de renderizado y recursos especificadas.
- Guarde el mensaje de correo cargado como un archivo HTML en la ubicación objetivo usando el Guardar método con el parámetro HtmlSaveOptions.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);
Embed Resources to an HTML File
En algunos casos, es necesario incrustar recursos, como imágenes, directamente en el archivo HTML para una distribución y presentación sin problemas. Con Aspose.Email for .NET, puede lograrlo fácilmente usando el ResourceRenderingMode enumeración:
- Cargue el mensaje de correo desde el archivo fuente usando el MapiMessage.Load método.
- Crear un nuevo HtmlSaveOptions objeto y establezca la propiedad ResourceRenderingMode a EmbedIntoHtml.
- Guarde el mensaje de correo cargado como un archivo HTML usando el Guardar método, especificando la ruta del archivo objetivo y pasando el objeto HtmlSaveOptions como parámetro para incrustar recursos en el archivo HTML.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);
Convert EML to ICS
El siguiente ejemplo de código muestra cómo extraer datos de eventos de calendario de un archivo EML y guardarlos en un archivo ICS separado para uso o manipulación posterior.
// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, save it to a file
if (icsView != null)
{
File.WriteAllText("appointment.ics", icsView);
}
Personalización
Aspose.Email for .NET proporciona herramientas para personalizar el contenido de ICS (iCalendar) extraído de archivos EML (correo electrónico).
Customize the event details
El siguiente ejemplo de código muestra cómo establecer varios detalles de la cita, como el resumen, la ubicación y la descripción. El código utiliza el Appointment clase que representa citas o eventos de calendario en formato ICS (iCalendar). La clase proporciona propiedades y métodos para crear, modificar y gestionar eventos del calendario programáticamente.
// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, load it to Appointment class object
var appointment = Appointment.Load(new MemoryStream(Encoding.UTF8.GetBytes(icsView)));
// Customize the event details
appointment.Summary = "Customized Event Summary";
appointment.Location = "Customized Location";
appointment.Description = "Customized Event Description";
// Add or modify attendees as needed
appointment.Attendees.Clear();
appointment.Attendees.Add("custom@example.com");
// Save the customized ICS content to a file
appointment.Save("customized_appointment.ics");
Create a recurrence pattern
El siguiente ejemplo de código muestra cómo crear un patrón de recurrencia semanal para una cita, donde la cita ocurre cada 5 semanas los sábados. El código utiliza el Recurrence propiedad del Appointment clase que obtiene o establece el patrón de recurrencia.
var pattern = new WeeklyRecurrencePattern(5, 7);
pattern. EndDate = new DateTime(2023, 8, 7);
appointment.Recurrence = pattern;
Add EML to MBOX
MBOX es un formato de uso común para almacenar múltiples mensajes de correo en un solo archivo, lo que lo hace adecuado para archivado y migración de correos. Use el MboxrdStorageWriter clase para escribir mensajes de correo a un archivo MBOX. El siguiente ejemplo de código muestra cómo realizar esta tarea:
using (var message = MailMessage.Load("inputFile.eml")){
using (var writer = new MboxrdStorageWriter("output.mbox", false)){
writer.WriteMessage(message);
}
}
Convert EML to MHTML
Con Aspose.Email for .NET, puede convertir fácilmente archivos EML al formato MHTML para varios propósitos como archivado, compatibilidad, visualización offline, etc. Cargue el mensaje de correo usando el MailMessage.Load, luego use el MhtSaveOptions clase como parámetro para el MailMessage.Save método para especificar el formato de archivo de salida al guardar el mensaje como un archivo separado:
// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
var mhtSaveOptions = new MhtSaveOptions;
message.Save("output.mhtml", mhtSaveOptions);
El MhtSaveOptions clase proporciona varias opciones para personalizar los archivos MHTML de salida y satisfacer sus requisitos específicos:
-
Preservar el formato de fecha original. Puede elegir preservar el formato original de los mensajes de correo durante el proceso de conversión:
saveOptions.PreserveOriginalDate = true; -
Establecer codificación de salida. Puede especificar la codificación a usar al escribir los archivos MHTML de salida:
saveOptions.OutputEncoding = Encoding.UTF8; -
Incluir archivos adjuntos. Esto puede ser útil si desea conservar los adjuntos al convertir correos a formato MHTML:
saveOptions.SaveAttachments = true;
Convert EML to MSG
Ya sea que necesite migrar datos de correo, archivar mensajes o integrarse con Microsoft Outlook, Aspose.Email ofrece soluciones para alcanzar sus objetivos. Los archivos MSG son ampliamente utilizados por Microsoft Outlook. Para la conversión de EML a MSG, use el MailMessage.Load método para cargar el archivo EML existente especificando cómo se cargará con EmlLoadOptions.
El siguiente ejemplo de código muestra cómo convertir archivos EML al formato MSG:
// Load mail message
using (var message = MailMessage.Load("sourceFile.eml", new EmlLoadOptions())){
// Save as MSG
var msgSaveOptions = new MsgSaveOptions;
message.Save("output.msg", MsgSaveOptions);
}
Convert EML to OFT
Para convertir archivos EML al formato Outlook Template (OFT), cargue el mensaje de correo existente usando el MailMessage.Load método y guárdelo con MailMessage.Save especificando las opciones predeterminadas para guardar un mensaje en formato OFT:
// load the EML file to be converted
var message = MailMessage.Load("My File.eml");
// save EML as a OFT
message.Save("Saved File.oft", SaveOptions.DefaultOft);
Add EML to PST
Para convertir archivos EML al formato Personal Storage Table (PST), cargue el mensaje usando el MapiMessage.Load método, crear el archivo de salida con el PersonalStorage.Create y agregar el correo a la carpeta Inbox creada en el archivo de almacenamiento usando el 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);
}
}
Add EML to OST
Los desarrolladores pueden convertir fácilmente archivos EML al formato Outlook Offline Storage Table (OST), habilitando la integración con Microsoft Outlook. El siguiente ejemplo de código muestra cómo agregar un mensaje EML a un archivo OST:
using (var ost = PersonalStorage.FromFile("storage.ost"))
{
// Load the EML file
var msg = MapiMessage.Load("message.eml", new EmlLoadOptions());
// Add the EML message to the OST file
var folderInfo = ost.RootFolder.GetSubFolder("Inbox");
folderInfo.AddMessage(msg);
}
El EmlLoadOptions el parámetro especifica opciones adicionales para cargar archivos EML, como preservar formatos de mensajes incrustados, eliminar firmas y más.
Convert EML to VCF
Aspose.Email for .NET ofrece funcionalidad para convertir archivos EML a formato vCard (VCF), permitiendo a los desarrolladores extraer información de contacto de los mensajes de correo. Para este propósito, la biblioteca ofrece el GetAlternateViewContent método del MailMessage clase que permite a los desarrolladores acceder a vistas alternas dentro de los mensajes de correo y extraer contenido VCF incrustado en archivos EML para su uso posterior:
// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/vcard" (VCF)
var vcfView = eml.GetAlternateViewContent("text/vcard");
// If an VCF view is found, save it to a file
if (vcfView != null)
{
File.WriteAllText("contact.vcf", vcfView);
}