C#を使用してメールから添付ファイルを保存する

C#開発者は、プログラムで電子メールメッセージから添付ファイルを簡単に抽出して保存できます。この記事では、C#を使用して電子メールから添付ファイルを保存する方法を学習します。

この記事では、次のトピックについて説明/取り上げています。

メールの添付ファイルを保存するためのC#API

MSGファイルの添付ファイルを保存するには、GroupDocs.Viewer for .NETAPIを使用します。これは、外部ソフトウェアをインストールせずに、広く使用されているファイル形式をレンダリングおよび表示するための強力なドキュメントビューアAPIです。また、WordExcelPowerPointOutlookメール、[プロジェクト][の人気のあるサポートされているファイル形式をすばやく表示できます。 12]、PDFHTML、およびXML

APIのDLLをダウンロードするか、NuGetを使用してインストールできます。

Install-Package GroupDocs.Viewer

C#を使用してメールから添付ファイルを抽出して保存する

以下の手順に従って、プログラムで電子メールMSGファイルから添付ファイルを抽出して保存できます。

  • まず、Viewerクラスを使用してMSGファイルをロードします。
  • 次に、Viewer.GetAttachments()メソッドを呼び出して、ロードされたMSGファイルのすべての添付ファイルを取得します。添付ファイルのコレクションとして結果を取得します。
  • コレクション内の添付ファイルごとに、Viewer.SaveAttachment()メソッドを呼び出して添付ファイルを保存します。添付ファイルオブジェクトとファイルパスを渡して保存します。

次のコードサンプルは、C#を使用して電子メールMSGファイルに含まれる添付ファイルを抽出して保存する方法を示しています。

string outputPath = @"C:\Files\Viewer\";

// APIを初期化し、MSGファイルをロードします
Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg");

// 添付ファイルを取得する
IList<Attachment> attachments = viewer.GetAttachments();

foreach (Attachment attachment in attachments)
{
    // 添付ファイルを保存
    string filePath = Path.Combine(outputPath, attachment.FileName);
    viewer.SaveAttachment(attachment, File.OpenWrite(filePath));
}
C#を使用してメールから添付ファイルを抽出して保存する

C#を使用して、電子メールから添付ファイルを抽出して保存します。

C#を使用して電子メールから添付ファイルをPDFとして保存する

以下の手順に従って、プログラムで電子メールメッセージの添付ファイルをPDFとして保存できます。

  • 添付ファイル名とファイルパスを使用して、Attachmentクラスのインスタンスを作成します。
  • MemoryStreamクラスのインスタンスを初期化します。
  • Viewerクラスを使用してMSGファイルをロードします。
  • 次に、Viewer.SaveAttachment()メソッドを呼び出し、AttachmentとMemoryStreamオブジェクトを入力パラメーターとして渡します。指定された添付ファイルを抽出してメモリストリームに保存します。
  • 次に、Viewerクラスを使用してMemoryStreamオブジェクトをロードします。
  • 次に、出力PDFファイルパスを使用してPdfViewOptionsクラスのインスタンスを作成します。
  • 最後に、Viewer.View()メソッドを呼び出して、添付ファイルをPDFとして保存および表示します。

次のコードサンプルは、C#を使用して電子メールMSGファイルから添付ファイルをPDFとして保存および表示する方法を示しています。

// 添付ファイルを初期化します
Attachment attachment = new Attachment("attachment-word.doc", "attachment-word.doc");
MemoryStream attachmentStream = new MemoryStream();

// APIを初期化し、MSGファイルをロードします
using (Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg"))
{
    // 添付ファイルをストリームに保存
    viewer.SaveAttachment(attachment, attachmentStream);
}

// APIを初期化し、添付ファイルストリームをロードします
using (Viewer viewer = new Viewer(attachmentStream))
{
    // PDF表示オプションを定義する
    PdfViewOptions viewOptions = new PdfViewOptions("C:\\Files\\Viewer\\output.pdf");

    // PDFとして表示
    viewer.View(viewOptions);
}

無料ライセンスを取得する

無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。

結論

この記事では、C#を使用して電子メールMSGファイルに含まれる添付ファイルを抽出して保存する方法を学習しました。さらに、プログラムで特定の添付ファイルをPDFとして保存する方法を見てきました。さらに、ドキュメントを使用して、GroupDocs.Viewer for.NETAPIについて詳しく知ることができます。あいまいな点がありましたら、フォーラムまでお気軽にお問い合わせください。

関連項目