1. 製品
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS for .NET

Outlook MSG ファイル、CFB コンテナ、EML メッセージを .NET から読み取り、作成、処理します — 無料かつオープンソースで、Microsoft Outlook への依存はありません。

MSG,CFB,EML ファイルのためのオープンソースの.NET ライブラリ

Aspose.Email FOSS for .NET は、MIT ライセンスで依存関係のない C# ライブラリで、Microsoft Outlook .msg ファイル、Compound File Binary (CFB) コンテナ、EML メッセージを操作できます。単一の NuGet パッケージを追加するだけで、Microsoft Outlook や任意のプロプライエタリランタイムをインストールせずに、メールメッセージの読み取り、作成、処理をすぐに開始できます。

このライブラリは 2 つのレベルのアクセスを提供します。低レベルでは、CfbReaderCfbWriter が CFB バイナリコンテナを完全に制御できるようにし、ディレクトリエントリの走査、ストレージノードとストリームデータの読み書き、そして生のセクタレイアウトの検査が可能です。MsgReaderMsgWriter は CFB 上の MSG フォーマットを処理し、MAPI プロパティストリーム、受信者テーブル、添付ファイルのサブストレージを公開します。高レベルでは、MapiMessage を使用して新しいメッセージをゼロから作成し、件名、本文、送信者、受信者を読み取り、添付ファイルを管理し、組み込みの MIME 実装を介して MSG と EML フォーマット間の変換を行えます。

このライブラリは .NET 8.0 以降を対象としており、ネイティブ依存関係がないため、Windows、Linux、macOS、Docker コンテナ、サーバーレス関数に適しています。追加機能や商用サポートについては、Aspose.Email for .NET を参照してください。

CFB コンテナ 読み書き

  • Open CFB files: 既存のCFBコンテナをファイルパス、ストリーム、またはバイト配列から CfbReader.FromFile()CfbReader.FromStream()、または new CfbReader(data) を使用してロードします。
  • Traverse the directory tree: IterStorages()IterStreams()IterChildren()、および IterTree() を使用してストレージ、ストリーム、子要素を反復処理します。
  • Resolve paths: ResolvePath(names) を使用してネストされたストレージ階層をナビゲートし、名前チェーンで特定のストリームを検索します。
  • Write CFB containers: CfbDocument を使用してプログラム的にCFBドキュメントを構築し、CfbWriter.ToBytes() または CfbWriter.WriteFile() を介してバイトまたはファイルにシリアライズします。
  • Add storages and streams: シリアライズ前に任意のストレージノードに CfbStorageCfbStream ノードを添付します。

CFB アクセス が 使われる 場所

  • 直接 CFB アクセスにより法医検査と修理が可能. このファイルは,CFPの".msg“を入力するときに作成されます.
  • カスタムバイナリーフォーマット: CFBをデータストレージに使用する古いアプリケーションは COM依存性なく読み書きできます.
  • データ復元: 完全なディレクトリツリーを横切って,破損したまたは非標準 CFBファイルから原始ストリームバイトを取り出す.
  • バイナリ・ラウンドトリップテスト: 文書をバイトにシリアライズし,自動化試験で損失のないシリアレーションを確認するために再ロードします.

MSG ファイル読み書き

  • MSG ファイルの読み取り: Open Outlook MSG files with MsgReader.FromFile() or MsgReader.FromStream() and access the underlying MAPI property streams, recipient records, and attachment sub-storages.
  • MSG ファイルの書き込み: Produce MSG files from a MsgDocument with MsgWriter.ToBytes() or MsgWriter.WriteFile().
  • 低レベル MAPI アクセス: Read top-level property streams, named properties, and attachment data via MsgStorage, MsgStream, and MsgStorage.FindStream().
  • MSG ストレージのナビゲーション: Use MsgStorage.FindStream() and MsgStorage.FindStorage() to locate named sub-entries.

MSG の 処理 が 用い られ て いる 所

  • ファイルを大量読み取り,メタデータや添付ファイルを抽出します. この方法では,このページの詳細は,
  • 移行ツール: MSG コレクションを標準フォーマットに変換して,Outlook以外のシステムへインポートします.
  • 法的な発見: 標準でないプロパティを含むすべてのメッセージフィールドを抽出するために原始MAPIプロペリテッドストリーム解析.
  • 自動レポート配信: .msg ファイルをプログラム的に構築し,Outlookベースのメールシステムに配布します.

高レベルのメッセージ API

  • メッセージの作成: 完全なメールを MapiMessage.Create(subject, body) で作成し、SenderNameSenderEmailAddressHtmlBody を設定します。
  • 受信者の追加: AddRecipient() を介して、メールアドレスと表示名を使用して ToCcBcc の受信者を添付します。
  • 添付ファイルの管理: AddAttachment() を使用してファイルおよびストリームの添付を追加するか、FilenameMimeTypeContentIdData を直接使用して MapiAttachment オブジェクトを構築します。
  • 保存と再読み込み: message.Save() または message.Save(stream) でシリアライズし、MapiMessage.FromFile() または MapiMessage.FromStream() で再読み込みします。

高レベルのAPIが使用される場所

  • Automated email generation: バッチジョブでデータレコードから数千のパーソナライズされた MSG ファイルを生成します。
  • Test fixture creation: 統合テストスイート用に予測可能な内容の既知の良好な MSG ファイルを作成します。
  • Attachment extraction: MSG ファイルをロードし、message.Attachments を反復し、各 attachment.Data をディスクに保存します。
  • Property inspection: COM オートメーションを使用せずに message.Subjectmessage.Bodymessage.SenderEmailAddress、および message.Recipients にアクセスします。

EML と MIME 変換

  • Load EML into MapiMessage: 標準の .eml ファイル (RFC 5322 / MIME) を MapiMessage.LoadFromEml(stream) を使用して完全な MapiMessage オブジェクトに解析します。
  • Save MapiMessage as EML: MapiMessagemessage.SaveToEml() または message.SaveToEml(stream) を使用して MIME 形式にシリアライズします。
  • Round-trip fidelity: 件名、本文、HTML 本文、送信者、受信者、添付ファイルはすべて EML → MSG → EML の往復で保持されます。
  • No external MIME parser: EML の解析はライブラリ内でネイティブに実装されており、System.Net.Mail への依存は不要です。

EML 変換 が 使われる 所

  • 形式ブリッジ:メールサーバーからEMLとして電子メールを受け取って,Outlook対応ストレージのためにMSGに変換します.
  • 標準の準拠: 独自のMSGファイルを,任意の郵便輸送に配信するために標準MIMEに変換します.
  • アーカイブ標準化: .eml.msg のファイルを組み合わせたアーキビルを単一のフォーマットに標準化する.
  • テストワークフロー: 試験で .eml の固定装置を生成し,データ損失なしにMSGの往復に耐えるかどうかを確認します.

MSG ファイルから主題を読み取ること

ストリームから Outlook MSG ファイルを開くと,対象を印刷します Microsoft Outlook は不要です.

using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);

MSG メッセージを作成して保存する

送信者,受信者および添付ファイルを入力して MSGファイルのように書き込みます.

using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.Create("Hello", "Body");
message.SenderName = "Alice";
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
using var attachmentStream = new MemoryStream("abc"u8.ToArray());
message.AddAttachment("note.txt", attachmentStream, "text/plain");
using var output = File.Create("hello.msg");
message.Save(output);

EML をMSG に変換する

標準の .eml ファイルをロードして,内蔵 MIME パッサーを使用して Outlook .msg ファイルのように保存します.

using System.IO;
using Aspose.Email.Foss.Msg;
using var input = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(input);
using var msgOutput = File.Create("message.msg");
message.Save(msgOutput);
using var emlOutput = File.Create("roundtrip.eml");
message.SaveToEml(emlOutput);
  

サポートと学習リソース

 日本語