Chuyển đổi EML và MIME

Chuyển đổi EML và MIME

Aspose.Email FOSS for .NET bao gồm một bộ phân tích và tuần tự hoá MIME tích hợp, vì vậy bạn có thể chuyển đổi giữa các tệp .eml tiêu chuẩn (RFC 5322) và các tệp Outlook .msg mà không cần bất kỳ phụ thuộc bên ngoài nào. Không cần tham chiếu System.Net.Mail.


Tải EML vào MapiMessage

LoadFromEml chấp nhận một đường dẫn tệp, luồng, hoặc mảng byte:

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);

Sau khi tải, tất cả các trường tiêu chuẩn đều có sẵn:

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

Lưu MapiMessage dưới dạng EML

SaveToEml chuỗi hoá một MapiMessage sang định dạng 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();

Chuyển đổi EML → MSG

Kết hợp LoadFromEmlSave để thực hiện chuyển đổi EML sang MSG đầy đủ:

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

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

Chuyển đổi MSG → EML

Tải một MSG hiện có và chuyển đổi thành EML:

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

Độ trung thực vòng quay

Các trường sau được giữ nguyên qua các vòng quay EML → MSG → EML:

  • Chủ đề, nội dung và nội dung HTML
  • Tên người gửi và địa chỉ email
  • Tất cả người nhận (To, Cc, Bcc)
  • Tệp đính kèm với tên tệp, loại MIME và nội dung
  • Internet Message-ID
  • Thời gian giao nhận tin nhắn
// 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

Xem thêm

 Tiếng Việt