Aspose.Email FOSS untuk .NET ialah perpustakaan C# berlesen MIT, bebas kebergantungan untuk bekerja dengan fail .msg Microsoft Outlook, kontena Compound File Binary (CFB), dan mesej EML. Tambahkan satu pakej NuGet dan terus mula membaca, membuat, serta memproses mesej e-mel tanpa memasang Microsoft Outlook atau mana-mana runtime proprietari.
Perpustakaan menyediakan dua tahap akses. Pada tahap rendah, CfbReader dan CfbWriter memberikan kawalan penuh ke atas kontena binari CFB — menelusuri entri direktori, membaca dan menulis nod storan serta data aliran, dan memeriksa susun atur sektor mentah. MsgReader dan MsgWriter mengendalikan format MSG di atas CFB, memaparkan aliran sifat MAPI, jadual penerima, dan sub‑storans lampiran. Pada tahap tinggi, MapiMessage membolehkan anda mencipta mesej baru dari awal, membaca subjek, badan, penghantar, dan penerima, mengurus lampiran, dan menukar antara format MSG dan EML melalui pelaksanaan MIME terbina dalam.
Pustaka ini menyasarkan .NET 8.0 atau lebih baru dan tidak mempunyai kebergantungan asli, menjadikannya sesuai untuk Windows, Linux, macOS, kontena Docker, dan fungsi tanpa pelayan. Untuk ciri tambahan dan sokongan komersial, lihat Aspose.Email for .NET.
CfbReader.FromFile(), CfbReader.FromStream(), atau new CfbReader(data).IterStorages(), IterStreams(), IterChildren(), dan IterTree().ResolvePath(names) untuk mencari aliran khusus mengikut rantaian nama.CfbDocument dan serialisasikan ke bait atau fail melalui CfbWriter.ToBytes() atau CfbWriter.WriteFile().CfbStorage dan CfbStream kepada mana-mana nod storan sebelum penserialan..msg — akses langsung CFB membolehkan pemeriksaan forensik dan pembaikan.MsgReader.FromFile() atau MsgReader.FromStream() dan akses aliran sifat MAPI yang mendasari, rekod penerima, dan sub-storages lampiran.MsgDocument dengan MsgWriter.ToBytes() atau MsgWriter.WriteFile().MsgStorage, MsgStream, dan MsgStorage.FindStream().MsgStorage.FindStream() dan MsgStorage.FindStorage() untuk mencari sub‑entrri yang dinamakan..msg dari direktori arkib dan ekstrak metadata atau lampiran..msg secara programatik dan hantar kepada sistem mel berasaskan Outlook.MapiMessage.Create(subject, body), tetapkan SenderName, SenderEmailAddress, dan HtmlBody.To, Cc, dan Bcc penerima melalui AddRecipient() dengan alamat e-mel dan nama paparan.AddAttachment() atau bina objek MapiAttachment secara langsung dengan Filename, MimeType, ContentId, dan Data.message.Save() atau message.Save(stream) dan muat semula dengan MapiMessage.FromFile() atau MapiMessage.FromStream().message.Attachments, dan simpan setiap attachment.Data ke cakera.message.Subject, message.Body, message.SenderEmailAddress, dan message.Recipients tanpa automasi COM..eml standard (RFC 5322 / MIME) menjadi objek MapiMessage penuh melalui MapiMessage.LoadFromEml(stream).MapiMessage kembali ke format MIME dengan message.SaveToEml() atau message.SaveToEml(stream)..eml dan .msg fail kepada satu format..eml fixture dalam ujian dan sahkan ia bertahan dalam pusingan MSG tanpa kehilangan data.Buka fail Outlook MSG daripada aliran dan cetak subjek — tidak memerlukan 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);
Bina e-mel lengkap dengan penghantar, penerima, dan lampiran, kemudian tulis ke fail 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);
Muatkan fail .eml standard dan simpan sebagai fail Outlook .msg menggunakan parser MIME terbina dalam.
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);