Guardar un correo electrónico como PDF
Este artículo muestra cómo convertir un mensaje de correo electrónico a PDF utilizando Aspose.Email. Aspose.Email para .NET maneja protocolos de red y características de Microsoft Outlook, y no puede manejar la conversión directa a PDF. Para superar esto, los ejemplos en este artículo utilizan Aspose.Email para convertir el mensaje de correo electrónico al flujo MHTML y luego utilizan Aspose.Words para .NET para cargar el flujo MHTML y luego guardarlo como PDF. Un mensaje de correo electrónico también puede contener 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 en línea en un mensaje formarán parte del MHTML y cualquier adjunto regular será ignorado.
Convertir mensaje de correo electrónico a PDF
El siguiente código muestra cómo convertir mensajes de correo electrónico a PDF utilizando Aspose.Email en combinación con Aspose.Words para .NET. Esto implica los siguientes pasos:
- Cargar el mensaje de correo electrónico usando MailMessage
- Guardar el mensaje de correo electrónico en MemoryStream como MHTML
- Cargar el flujo usando Aspose.Words
- Guardar el mensaje como PDF
El mensaje de correo electrónico fuente se puede ver como sigue:
El PDF convertido es como se muestra en la siguiente imagen:
El siguiente fragmento de código te 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);
// crear una instancia de LoadOptions y establecer el LoadFormat en Mhtml
var loadOptions = new Aspose.Words.Loading.LoadOptions();
loadOptions.LoadFormat = LoadFormat.Mhtml;
// crear una instancia de Document y cargar el MTHML desde MemoryStream
var document = new Aspose.Words.Document(ms, loadOptions);
// crear una instancia de HtmlSaveOptions y establecer el SaveFormat en Html
var saveOptions = new Aspose.Words.Saving.PdfSaveOptions();
document.Save(dataDir + "SaveEmailAsPDF_out.pdf", saveOptions);