メールを PDF として保存する

本記事では、Aspose.Email を使用してメール メッセージを PDF に変換する方法を紹介します。Aspose.Email for .NET はネットワークプロトコルと Microsoft Outlook 機能を扱うため、直接 PDF へ変換することはできません。この問題を解決するために、本記事のサンプルではメール メッセージを MHTML ストリームに変換し、続いて Aspose.Words for .NET を使用して MHTML ストリームを読み込み、PDF として保存します。メール メッセージには添付ファイルも含まれる可能性がありますが、各添付は異なるメディアタイプであるため、Aspose.Email は MHTML への変換時にこれらの添付を無視します。つまり、メッセージ内のインライン画像のみが MHTML に含まれ、通常の添付は無視されます。

メール メッセージを PDF に変換する

以下のコードは、Aspose.Email と Aspose.Words for .NET を組み合わせてメール メッセージを PDF に変換する手順を示しています。手順は次のとおりです:

  1. 次のものを使用してメール メッセージを読み込む MailMessage
  2. メールメッセージを MemoryStream に MHTML として保存する
  3. Aspose.Words を使用してストリームを読み込む
  4. メッセージを PDF として保存する

元のメールメッセージは以下のように表示できます:

todo:image_alt_text

変換された PDF は以下の画像のとおりです:

todo:image_alt_text

以下のコードスニペットは、メール メッセージを 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);