はじめに
Aspose.Email FOSS for .NET は、無料のオープンソース C# ライブラリで、Outlook
MSG ファイル、Compound File Binary (CFB) コンテナ、EML メッセージを .NET
アプリケーション内で直接操作できます — Microsoft Outlook は不要、COM 相互運用も不要、ネイティブ ライブラリも不要です。配布
それを単一の NuGet パッケージとして行い、Windows、Linux、macOS、Docker コンテナ、
およびサーバーレス関数でも同様に実行されます。
このライブラリは、エンタープライズおよび統合作業で繰り返し発生する問題を解決します:Outlook .msg ファイルは何百万人ものビジネスユーザーによって作成されますが、Outlook がなくてもこれらを解析するには、従来は COM オートメーションや高価な商用ライブラリが必要でした。Aspose.Email FOSS for .NET は、MSG、基盤となる CFB バイナリコンテナ、そして EML/MIME 形式に対する完全な読み書きサポートを提供します — すべて MIT ライセンスの下で、使用制限なしで利用できます。
メールアーカイブパイプライン、マイグレーションツール、添付ファイル抽出ツール、
または自動MSGジェネレータを構築しているかどうかにかかわらず、このライブラリはメール形式のすべてのバイトに直接、低レベルでアクセスでき、
さらに高レベルの MapiMessage API を備えており、数分で始められます。
主な機能
Outlook MSG ファイルの読み取り
任意の.msgファイルをパスまたはストリームからMsgReader.FromFile()またはMsgReader.FromStream()で開くことができます。MsgStorageおよびMsgStreamを使用して、MAPI プロパティ ストリーム全体、受信者レコード、添付ファイルのサブストレージを生バイトレベルでアクセスできます。
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 ファイルをゼロから作成する
MapiMessage.Create() を使用してプログラムで完全なメールを作成します。件名、プレーンテキスト
本文、HTML 本文、送信者名、送信者メールアドレス、配信時間、インターネットメッセージ ID を設定し、次に
AddRecipient() で受信者を追加し、AddAttachment() で添付ファイルを追加します。
message.Save() でシリアライズします。
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 に変換(および逆変換)
標準的な RFC 5322 .eml ファイルを MapiMessage に MapiMessage.LoadFromEml() で読み込み、Outlook .msg ファイルとして保存する — または MapiMessage.SaveToEml() で逆のプロセスを行います。
組み込みの MIME パーサーは、件名、本文、HTML 本文、送信者、受信者、添付ファイルを完全な EML ↔ 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);
低レベル CFB コンテナ アクセス
Outlook MSG ファイルは、階層型バイナリコンテナであり、ファイルシステムに似た Compound File Binary (CFB) フォーマット上に構築されています。CfbReader は完全なディレクトリツリーを公開します:IterStorages()、IterStreams()、IterChildren() を使用してストレージとストリームを反復し、ResolvePath() を使用してパスで特定のエントリに移動し、GetStreamData() を使用して生のストリームバイトを読み取ります。
CfbWriter は、最初から CFB ドキュメントを構築しシリアライズできるようにします。CfbDocument を作成し、CfbStorage と CfbStream ノードを添付し、CfbWriter.ToBytes() またはCfbWriter.WriteFile() を呼び出してシリアライズします。
MAPI プロパティと添付ファイルへのアクセス
MapiPropertyCollection クラスは、任意の MSG またはストレージ オブジェクトに対して型付けされた MAPI プロパティ アクセスを提供します: 標準の CommonMessagePropertyId または PropertyTypeCode 列挙値と共に Get()、Set()、Add()、および Remove() を使用してください。添付ファイルのメタデータとバイナリ データは MapiAttachment プロパティを介してアクセスできます: Filename、MimeType、ContentId、および Data。
クイックスタート
パッケージをインストール:
dotnet add package Aspose.Email.Foss
MSG ファイルから件名を読み取る:
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Console.WriteLine(message.SenderEmailAddress);
foreach (var recipient in message.Recipients)
Console.WriteLine($"To: {recipient.EmailAddress}");
foreach (var attachment in message.Attachments)
Console.WriteLine($"Attachment: {attachment.Filename} ({attachment.MimeType})");
サポートされているフォーマット
| フォーマット | 拡張子 | 読み取り | 書き込み |
|---|---|---|---|
| Compound File Binary | .cfb | ✓ | ✓ |
| Outlook Message | .msg | ✓ | ✓ |
| MIME / EML | .eml | ✓ | ✓ |
オープンソースとライセンス
Aspose.Email FOSS for .NET は MIT ライセンス の下でリリースされています。個人、商用、オープンソース プロジェクトで使用制限なく自由に使用できます。ソースコードは
github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net で入手可能です。