Aspose.Email FOSS for .NET は、MIT ライセンスで依存関係のない C# ライブラリで、Microsoft Outlook .msg ファイル、Compound File Binary (CFB) コンテナ、EML メッセージを操作できます。単一の NuGet パッケージを追加するだけで、Microsoft Outlook や任意のプロプライエタリランタイムをインストールせずに、メールメッセージの読み取り、作成、処理をすぐに開始できます。
このライブラリは 2 つのレベルのアクセスを提供します。低レベルでは、CfbReader と CfbWriter が CFB バイナリコンテナを完全に制御できるようにし、ディレクトリエントリの走査、ストレージノードとストリームデータの読み書き、そして生のセクタレイアウトの検査が可能です。MsgReader と MsgWriter は CFB 上の MSG フォーマットを処理し、MAPI プロパティストリーム、受信者テーブル、添付ファイルのサブストレージを公開します。高レベルでは、MapiMessage を使用して新しいメッセージをゼロから作成し、件名、本文、送信者、受信者を読み取り、添付ファイルを管理し、組み込みの MIME 実装を介して MSG と EML フォーマット間の変換を行えます。
このライブラリは .NET 8.0 以降を対象としており、ネイティブ依存関係がないため、Windows、Linux、macOS、Docker コンテナ、サーバーレス関数に適しています。追加機能や商用サポートについては、Aspose.Email for .NET を参照してください。
CfbReader.FromFile()、CfbReader.FromStream()、または new CfbReader(data) を使用してロードします。IterStorages()、IterStreams()、IterChildren()、および IterTree() を使用してストレージ、ストリーム、子要素を反復処理します。ResolvePath(names) を使用してネストされたストレージ階層をナビゲートし、名前チェーンで特定のストリームを検索します。CfbDocument を使用してプログラム的にCFBドキュメントを構築し、CfbWriter.ToBytes() または CfbWriter.WriteFile() を介してバイトまたはファイルにシリアライズします。CfbStorage と CfbStream ノードを添付します。.msg“を入力するときに作成されます.MsgReader.FromFile() or MsgReader.FromStream() and access the underlying MAPI property streams, recipient records, and attachment sub-storages.MsgDocument with MsgWriter.ToBytes() or MsgWriter.WriteFile().MsgStorage, MsgStream, and MsgStorage.FindStream().MsgStorage.FindStream() and MsgStorage.FindStorage() to locate named sub-entries..msg ファイルをプログラム的に構築し,Outlookベースのメールシステムに配布します.MapiMessage.Create(subject, body) で作成し、SenderName、SenderEmailAddress、HtmlBody を設定します。AddRecipient() を介して、メールアドレスと表示名を使用して To、Cc、Bcc の受信者を添付します。AddAttachment() を使用してファイルおよびストリームの添付を追加するか、Filename、MimeType、ContentId、Data を直接使用して MapiAttachment オブジェクトを構築します。message.Save() または message.Save(stream) でシリアライズし、MapiMessage.FromFile() または MapiMessage.FromStream() で再読み込みします。message.Attachments を反復し、各 attachment.Data をディスクに保存します。message.Subject、message.Body、message.SenderEmailAddress、および message.Recipients にアクセスします。.eml ファイル (RFC 5322 / MIME) を MapiMessage.LoadFromEml(stream) を使用して完全な MapiMessage オブジェクトに解析します。MapiMessage を message.SaveToEml() または message.SaveToEml(stream) を使用して MIME 形式にシリアライズします。.eml と .msg のファイルを組み合わせたアーキビルを単一のフォーマットに標準化する..eml の固定装置を生成し,データ損失なしに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ファイルのように書き込みます.
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 ファイルをロードして,内蔵 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);