Cargando y Guardando Mensajes

Cargando y Guardando Mensajes

Detección de Formatos de Archivos

La API de Aspose.Email proporciona la capacidad de detectar el formato de archivo del archivo de mensaje proporcionado. El método DetectFileFormat de la clase FileFormatUtil se puede utilizar para lograr esto. Las siguientes clases y métodos se pueden utilizar para detectar el formato de archivo cargado.

El siguiente fragmento de código le muestra cómo detectar formatos de archivo.

Cargando un Mensaje con Opciones de Carga

El siguiente fragmento de código le muestra cómo cargar un mensaje con opciones de carga.

Preservando el Formato del Mensaje Embebido Durante la Carga

Cargando un Mensaje Preservando o Eliminando una Firma

La preservación de la firma está soportada por defecto al cargar archivos EML. Para eliminar la firma, puede establecer la propiedad LoadOptions.RemoveSignature en true.

El siguiente ejemplo de código muestra cómo eliminar una firma al cargar un mensaje:

var msg = MapiMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});

Comprobando la Firma de Correos Electrónicos Seguros

La clase SecureEmailManager le permite comprobar la firma de objetos MailMessage seguros.

La clase SmimeResult almacena los resultados de la verificación.

Los siguientes métodos de la clase SecureEmailManager y un fragmento de código le permitirán procesar una firma:

var eml = MailMessage.Load(fileName);
var result = new SecureEmailManager().CheckSignature(eml);

var certFileName = "cert.pfx";
var cert = new X509Certificate2(certFileName, "pass");
var eml = MailMessage.Load(fileName);
var store = new X509Store();
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();

var result = new SecureEmailManager().CheckSignature(eml, cert, store);

Guardando y Convirtiendo Mensajes

Aspose.Email facilita la conversión de cualquier tipo de mensaje a otro formato. Para demostrar esta característica, el código en este artículo carga tres tipos de mensajes desde el disco y los guarda en otros formatos. La clase base SaveOptions y las clases EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions para configuraciones adicionales al guardar MailMessage se pueden utilizar para guardar mensajes en otros formatos. El artículo muestra cómo usar estas clases para guardar un correo electrónico de ejemplo como:

  • Formato EML.
  • Outlook MSG.
  • Formato MHTML.
  • Formato HTML.

Cargar y Guardar un mensaje EML

El siguiente fragmento de código le muestra cómo cargar un mensaje EML y guardarlo en el disco en el mismo formato.

Cargar y Guardar un mensaje EML Preservando los Límites Originales

El siguiente fragmento de código le muestra cómo cargar EML y guardar como EML preservando los límites originales.

Guardando como EML Preservando Archivos Adjuntos TNEF

El siguiente fragmento de código muestra cómo guardar como EML preservando los archivos adjuntos TNEF.

Guardar EML como MSG

El siguiente fragmento de código le muestra cómo cargar un mensaje EML y convertirlo a MSG utilizando la opción apropiada de SaveOptions.

Guardando como MSG con Fechas Preservadas

La clase MsgSaveOptions le permite guardar el mensaje fuente como un archivo de Mensaje de Outlook (MSG) preservando las fechas. El siguiente fragmento de código le muestra cómo guardar como MSG con fechas preservadas.

Guardando MailMessage como MHTML

Diferentes opciones de MHTML se pueden usar para obtener los resultados deseados. El siguiente fragmento de código le muestra cómo cargar un mensaje EML en MailMessage y convertirlo a MHTML con una fecha de mensaje en el sistema UTC.

// Para ejemplos completos y archivos de datos, por favor visite https://github.com/aspose-email/Aspose.Email-for-.NET

// Establecer opciones para la salida MHTML
MhtSaveOptions saveOptions = SaveOptions.DefaultMhtml;
saveOptions.PreserveOriginalDate = false; // guardar la fecha de un mensaje como fecha UTC

// Inicializar y cargar un archivo EML existente
using (MailMessage mailMessage = MailMessage.Load(folderPath + "Message.eml"))
{
    mailMessage.Save(folderPath + "Message_out.mhtml", saveOptions);
}

Convertir a MHTML con Configuraciones Opcionales

La clase MhtSaveOptions proporciona opciones adicionales para guardar mensajes de correo electrónico en formato MHTML. El enumerador MhtFormatOptions hace posible escribir información adicional de correo electrónico en el MHTML de salida. Los siguientes campos adicionales pueden ser escritos:

  • WriteHeader – escribir el encabezado del correo electrónico en el archivo de salida.
  • WriteOutlineAttachments – escribir archivos adjuntos de esquema en el archivo de salida.
  • WriteCompleteEmailAddress – escribir la dirección de correo electrónico completa en el archivo de salida.
  • NoEncodeCharacters – no se debe utilizar codificación de transferencia de caracteres.
  • HideExtraPrintHeader – ocultar el encabezado de impresión extra de la parte superior del archivo de salida.
  • WriteCompleteToEmailAddress – escribir la dirección de correo electrónico completa del destinatario en el archivo de salida.
  • WriteCompleteFromEmailAddress – escribir la dirección de correo electrónico completa del remitente en el archivo de salida.
  • WriteCompleteCcEmailAddress – escribir las direcciones de correo electrónico completas de los destinatarios en copia en el archivo de salida.
  • WriteCompleteBccEmailAddress – escribir la dirección de correo electrónico completa de los destinatarios en copia oculta en el archivo de salida.
  • RenderCalendarEvent – escribir texto del evento de calendario en el archivo de salida.
  • SkipByteOrderMarkInBody – escribir los bytes del Byte Order Mark (BOM) en el archivo de salida.
  • RenderVCardInfo – escribir texto de VCard AlternativeView en el archivo de salida.
  • DisplayAsOutlook – mostrar el encabezado From.
  • RenderTaskFields – escribir campos específicos de tarea en el archivo de salida.
  • None – No se especificó ninguna configuración.

El siguiente fragmento de código muestra cómo convertir archivos EML a MHTML con configuraciones opcionales.

Renderizando Eventos de Calendario al Convertir a MHTML

El MhtFormatOptions.RenderCalendarEvent renderiza los eventos de Calendario a la salida MTHML. El siguiente fragmento de código le muestra cómo renderizar eventos de calendario al convertir a MHTML.

Exportando Correo Electrónico a MHT sin Imágenes Integradas

Exportando Correo Electrónico a MHT con Zona Horaria Personalizada

La clase MailMessage proporciona la propiedad TimeZoneOffset para establecer una zona horaria personalizada al exportar a MHT. El siguiente fragmento de código le muestra cómo exportar correo electrónico a MHT con zona horaria personalizada.

Cambiando la Fuente al Convertir a MHT

Preservando el cuerpo RTF al convertir MSG a EML

La conversión de un archivo MSG a EML preservando el cuerpo RTF se puede hacer de dos maneras:

Ambas propiedades obtienen o establecen un valor que indica si mantener el cuerpo rtf en MailMessage.

Los siguientes fragmentos de código muestran cómo convertir un archivo MSG a EML y preservar el cuerpo RTF:

var loadOptions = new MsgLoadOptions
{
    PreserveRtfContent = true
};

var eml = MailMessage.Load("my.msg", loadOptions);
var conversionOptions = new MailConversionOptions
{
    PreserveRtfContent = true
};

var msg = MapiMessage.Load("my.msg");

var eml = msg.ToMailMessage(conversionOptions);

Exportando Correo Electrónico a EML

El siguiente fragmento de código le muestra cómo exportar correos electrónicos a EML.

Guardando Mensaje como HTML

La clase HtmlSaveOptions le permite exportar el cuerpo del mensaje a HTML. El siguiente fragmento de código le muestra cómo guardar un mensaje como HTML.

Guardando como HTML sin Embebidos Recursos

Guardando Mensaje como un archivo de plantilla de Outlook (.oft)

El siguiente fragmento de código le muestra cómo guardar un mensaje como un archivo de plantilla de outlook (.oft).