EML と MIME の変換

EML と MIME の変換

Aspose.Email FOSS for .NET には組み込みの MIME パーサーとシリアライザーが含まれているため、標準 .eml ファイル(RFC 5322)と Outlook .msg ファイルを外部依存なしで相互変換できます。System.Net.Mail 参照は不要です。


EML を MapiMessage にロードする

LoadFromEml はファイルパス、ストリーム、またはバイト配列を受け取ります:

using System.IO;
using Aspose.Email.Foss.Msg;

// From file path
var message = MapiMessage.LoadFromEml("incoming.eml");

// From stream
using var stream = File.OpenRead("incoming.eml");
var message2 = MapiMessage.LoadFromEml(stream);

// From byte array
var emlBytes = File.ReadAllBytes("incoming.eml");
var message3 = MapiMessage.LoadFromEml(emlBytes);

ロード後、すべての標準フィールドが利用可能です:

Console.WriteLine(message.Subject);
Console.WriteLine(message.SenderEmailAddress);
Console.WriteLine(message.Recipients.Count);
Console.WriteLine(message.Attachments.Count);
Console.WriteLine(message.HtmlBody);

MapiMessage を EML として保存

SaveToEmlMapiMessage を MIME 形式にシリアライズします:

// To file path
message.SaveToEml("output.eml");

// To stream
using var outStream = File.Create("output.eml");
message.SaveToEml(outStream);

// To byte array
byte[] emlData = message.SaveToEml();

EML → MSG 変換

完全なEMLからMSGへの変換のためにLoadFromEmlSaveを組み合わせます:

using System.IO;
using Aspose.Email.Foss.Msg;

var message = MapiMessage.LoadFromEml("incoming.eml");
message.Save("converted.msg");

MSG → EML 変換

既存の MSG を読み込み、EML としてシリアライズする:

using var message = MapiMessage.FromFile("original.msg");
message.SaveToEml("exported.eml");

往復忠実度

次のフィールドは EML → MSG → EML の往復で保持されます:

  • 件名、本文、HTML本文
  • 送信者名とメールアドレス
  • すべての受信者(To、Cc、Bcc)
  • ファイル添付(ファイル名、MIMEタイプ、内容)
  • Internet Message-ID
  • メッセージ配信時間
// Verify round-trip
var original = MapiMessage.LoadFromEml("test.eml");
original.Save("test.msg");

using var reloaded = MapiMessage.FromFile("test.msg");
reloaded.SaveToEml("roundtrip.eml");

// Compare: original.eml and roundtrip.eml should have
// matching Subject, From, To, and attachment count

参照

 日本語