Guardar un correo electrónico como PDF

Este artículo muestra cómo convertir un mensaje de correo electrónico a PDF usando Aspose.Email. Aspose.Email para .NET maneja protocolos de red y funciones de Microsoft Outlook, y no puede manejar la conversión directa a PDF. Para superar esto, los ejemplos en este artículo usan Aspose.Email para convertir el mensaje de correo a un flujo MHTML y luego usan Aspose.Words para .NET para cargar el flujo MHTML y guardarlo como PDF. Un mensaje de correo puede contener también adjuntos. Dado que cada adjunto puede ser de diferentes tipos de medios, Aspose.Email ignora estos adjuntos al convertir a MHTML, es decir, solo las imágenes inline en un mensaje forman parte del MHTML y cualquier adjunto regular se ignora.

Convirtiendo mensaje de correo electrónico a PDF

El siguiente código muestra la conversión de mensajes de correo electrónico a PDF usando Aspose.Email en combinación con Aspose.Words para .NET. Esto implica los siguientes pasos:

  1. Cargar el mensaje de correo usando MailMessage
  2. Guardar el mensaje de correo en MemoryStream como MHTML
  3. Cargar el flujo usando Aspose.Words
  4. Guardar el mensaje como PDF

El mensaje de correo fuente se puede ver de la siguiente manera:

todo:image_alt_text

El PDF convertido se muestra en la siguiente imagen:

todo:image_alt_text

El siguiente fragmento de código muestra cómo convertir mensajes de correo electrónico a PDF.

string dataDir = RunExamples.GetDataDir_KnowledgeBase();
MailMessage mailMsg = MailMessage.Load(dataDir + "message3.msg");
MemoryStream ms = new MemoryStream();
mailMsg.Save(ms, Aspose.Email.SaveOptions.DefaultMhtml);

// create an instance of LoadOptions and set the LoadFormat to Mhtml
var loadOptions = new Aspose.Words.Loading.LoadOptions();
loadOptions.LoadFormat = LoadFormat.Mhtml;

// create an instance of Document and load the MTHML from MemoryStream
var document = new Aspose.Words.Document(ms, loadOptions);

// create an instance of HtmlSaveOptions and set the SaveFormat to Html
var saveOptions = new Aspose.Words.Saving.PdfSaveOptions();
document.Save(dataDir + "SaveEmailAsPDF_out.pdf", saveOptions);