تبدیل 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

SaveToEml یک MapiMessage را به فرمت 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

LoadFromEml و Save را ترکیب کنید برای تبدیل کامل EML به MSG:

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 و محتوا
  • شناسه پیام اینترنتی (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

موارد مرتبط

 فارسی