Zapisywanie e‑mail jako PDF

Ten artykuł pokazuje, jak przekonwertować wiadomość e‑mail na PDF przy użyciu Aspose.Email. Aspose.Email for .NET zajmuje się protokołami sieciowymi i funkcjami Microsoft Outlook i nie może bezpośrednio konwertować do PDF. Aby to obejść, przykłady w tym artykule używają Aspose.Email do konwersji wiadomości e‑mail na strumień MHTML, a następnie używają Aspose.Words for .NET do załadowania tego strumienia MHTML i zapisania go jako PDF. Wiadomość e‑mail może również zawierać załączniki. Ponieważ każdy załącznik może mieć inny typ mediów, Aspose.Email ignoruje te załączniki podczas konwersji do MHTML, tj. tylko obrazy wbudowane w wiadomość będą częścią MHTML, a wszelkie zwykłe załączniki zostaną pominięte.

Konwersja wiadomości e‑mail do PDF

Poniższy kod pokazuje konwersję wiadomości e‑mail na PDF przy użyciu Aspose.Email w połączeniu z Aspose.Words for .NET. Obejmuje to następujące kroki:

  1. Załaduj wiadomość e‑mail przy użyciu MailMessage
  2. Zapisz wiadomość e‑mail do MemoryStream jako MHTML
  3. Załaduj strumień przy użyciu Aspose.Words
  4. Zapisz wiadomość jako PDF

Źródłową wiadomość e‑mail można zobaczyć w następujący sposób:

todo:image_alt_text

Przekonwertowany PDF jest przedstawiony na poniższym obrazku:

todo:image_alt_text

Poniższy fragment kodu pokazuje, jak przekonwertować wiadomości e‑mail na 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);