Crear y guardar archivos de Outlook

Aspose.Email admite crear archivos de mensaje Outlook (MSG). Este artículo explica cómo:

Crear y guardar mensajes Outlook

El MailMessage clase tiene el Save() método que puede guardar archivos Outlook MSG en disco o en un stream. Los fragmentos de código a continuación crean una instancia de la MailMessage clase, establece propiedades como from, to, subject y body. El Save() el método toma el nombre de archivo como argumento. Además, los mensajes de Outlook pueden crearse con un cuerpo RTF comprimido usando el MapiConversionOptions

  1. Crea una nueva instancia de la MailMessage clase y establece las propiedades From, To, Subject y Body.
  2. Llame al MapiMessage clase FromMailMessage método que acepta el objeto de la MailMessage tipo. El FromMailMessage método convierte el MailMessage en un MapiMessage (MSG).
  3. Llame al MapiMessage.Save() método para guardar el archivo MSG.

Escriba el siguiente código en el evento click del control de botón de la aplicación Windows.

Crear archivos MSG con adjuntos

En el ejemplo anterior, creamos un archivo MSG sencillo. Aspose.Email también admite guardar archivos de mensaje con adjuntos. Todo lo que necesitas hacer es agregar los adjuntos al MailMessage instancia. Agregue adjuntos llamando al método Add() en el MailMessage.Attachments colección. Agregue un ListBox al formulario creado arriba y añada dos botones, uno para agregar y otro para eliminar adjuntos. La aplicación que agrega aplicaciones funciona así:

  1. Al hacer clic en el botón Add Attachment, se muestra un Open File Dialog para ayudar a los usuarios a explorar y seleccionar el adjunto.
  2. Cuando se ha seleccionado un archivo, la ruta completa se agrega a una lista.
  3. Cuando se crea el archivo MSG, las rutas de los adjuntos se obtienen de la lista y se agregan al MailMessage.Attachments colección.

Escriba el siguiente código en el evento click del botón Add Attachment.

Cuando se hace clic en el botón Remove Attachment, elimine los elementos seleccionados del ListBox. Escriba el siguiente código en el evento click del botón Remove Attachment.

Añada el código para agregar los adjuntos al MailMessage instancia. El código final para la función Write Msg se escribe a continuación.

Crear archivos MSG con cuerpo RTF

También puedes crear archivos de mensaje Outlook (MSG) con cuerpos de texto enriquecido (RTF) usando Aspose.Email. El cuerpo RTF admite formato de texto. Crea uno estableciendo el MailMessage.HtmlBody propiedad. Cuando conviertes un MailMessage instancia en un MapiMessage instancia, el cuerpo HTML se convierte a RTF. De esta manera, el formato del cuerpo del correo se preserva.

El siguiente ejemplo crea un archivo MSG con un cuerpo RTF. Hay un encabezado, formato en negrita y subrayado aplicado en el cuerpo HTML. Este formato se conserva cuando el HTML se convierte a RTF.

Compresión RTF para el cuerpo del mensaje MAPI

NOTA: El proceso de compresión puede ralentizar el rendimiento al crear mensajes. Al comprender este hecho y configurar la bandera de compresión según los requisitos específicos y el compromiso entre el tamaño del archivo y el rendimiento, los desarrolladores pueden gestionar eficazmente la creación de archivos MSG y PST al manejar mensajes de correo electrónico.

La compresión RTF está diseñada para reducir el tamaño de un mensaje así como los archivos PST (Personal Storage Table) resultantes que Microsoft Outlook usa para almacenar mensajes de correo electrónico y otros datos. Al utilizar la compresión RTF al configurar el cuerpo del mensaje, los desarrolladores pueden reducir la cantidad de memoria necesaria para almacenar mensajes de correo electrónico u optimizar el ancho de banda de la red al transmitir mensajes.

Para este propósito, se han diseñado dos métodos sobrecargados:

  • MapiMessageItemBase.SetBodyContent(string content, BodyContentType contentType, bool compression): Este método le permite establecer el contenido del cuerpo del mensaje usando la cadena especificada y especificando el contentType del cuerpo (por ejemplo, texto plano, HTML, etc.). El parámetro opcional compression es un valor que indica si el contenido debe comprimirse usando compresión RTF. Si el parámetro compression es true, el contenido se comprimirá, resultando en un mensaje de menor tamaño.

  • MapiMessageItemBase.SetBodyRtf(string content, bool compression): Este método establece específicamente el contenido del cuerpo del mensaje en formato RTF. El parámetro content es una cadena que representa el contenido RTF que se establecerá como cuerpo del mensaje. Al igual que en el método anterior, el parámetro compression determina si se debe aplicar compresión RTF al contenido. Si compression es true, el contenido RTF se comprimirá para reducir su tamaño.

El siguiente ejemplo de código muestra cómo establecer el cuerpo HTML y mantenerlo comprimido:

var msg = new MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
// set the html body and keep it compressed
// this will reduce the message size
msg.SetBodyContent(htmlBody, BodyContentType.Html, true);

También hay un MapiConversionOptions.UseBodyCompression propiedad. Cuando esta propiedad está habilitada, se aplica compresión del cuerpo RTF durante la conversión de MailMessage a MapiMessage, lo que resulta en un archivo MSG de menor tamaño. Se muestra en el siguiente ejemplo de código:

var message = MailMessage.Load(fileName);
var options = new MapiConversionOptions();
options.UseBodyCompression = true;
var msg = MapiMessage.FromMailMessage(message, options);

Guardar mensaje en estado borrador

Los correos electrónicos se guardan como borradores cuando alguien ha comenzado a editarlos pero quiere volver a ellos para completarlos más tarde. Aspose.Email admite guardar mensajes de correo en estado de borrador estableciendo una bandera de mensaje. A continuación se muestra el código de ejemplo para guardar un mensaje de correo de Outlook (MSG) como borrador.