Aspose.Email FOSS สำหรับ .NET เป็นไลบรารี C# ที่มีใบอนุญาต MIT, ปราศจากการพึ่งพา สำหรับการทำงานกับไฟล์ .msg ของ Microsoft Outlook, คอนเทนเนอร์ Compound File Binary (CFB) และข้อความ EML. เพิ่มแพ็กเกจ NuGet เพียงหนึ่งเดียวและเริ่มอ่าน, สร้าง, และประมวลผลข้อความอีเมลได้ทันทีโดยไม่ต้องติดตั้ง Microsoft Outlook หรือรันไทม์ที่เป็นกรรมสิทธิ์ใด ๆ.
ไลบรารีนี้ให้การเข้าถึงสองระดับ ระดับต่ำ CfbReader และ CfbWriter ให้การควบคุมเต็มรูปแบบเหนือคอนเทนเนอร์ไบนารี CFB — เดินทางผ่านรายการไดเรกทอรี, อ่านและเขียนโหนดสตอเรจและข้อมูลสตรีม, และตรวจสอบโครงสร้างเซกเตอร์ดิบ MsgReader และ MsgWriter จัดการรูปแบบ MSG บน CFB, เปิดเผยสตรีมคุณสมบัติ MAPI, ตารางผู้รับ, และซับสตอเรจของไฟล์แนบ ระดับสูง MapiMessage ให้คุณสร้างข้อความใหม่ตั้งแต่ต้น, อ่านหัวเรื่อง, เนื้อหา, ผู้ส่ง, และผู้รับ, จัดการไฟล์แนบ, และแปลงระหว่างรูปแบบ MSG และ EML ผ่านการทำงานของ MIME ที่ฝังมาในตัว
ไลบรารีนี้มุ่งเป้าไปที่ .NET 8.0 หรือใหม่กว่าและไม่มีการพึ่งพาเนทีฟ ทำให้เหมาะสำหรับ Windows, Linux, macOS, Docker containers, และ serverless functions. สำหรับคุณลักษณะเพิ่มเติมและการสนับสนุนเชิงพาณิชย์ ดู Aspose.Email for .NET.
CfbReader.FromFile(), CfbReader.FromStream() หรือ new CfbReader(data).IterStorages(), IterStreams(), IterChildren() และ IterTree().ResolvePath(names) เพื่อค้นหาสตรีมเฉพาะโดยใช้สายชื่อCfbDocument และทำการแปลงเป็นไบต์หรือไฟล์ผ่าน CfbWriter.ToBytes() หรือ CfbWriter.WriteFile().CfbStorage และ CfbStream ไปยังโหนดที่เก็บข้อมูลใด ๆ ก่อนทำการซีเรียลไลซ์.msg — การเข้าถึง CFB โดยตรงทำให้สามารถตรวจสอบและซ่อมแซมเชิงนิติวิทยาศาสตร์ได้.MsgReader.FromFile() หรือ MsgReader.FromStream() และเข้าถึงสตรีมคุณสมบัติ MAPI, บันทึกผู้รับ, และ sub-storages ของไฟล์แนบ.MsgDocument ด้วย MsgWriter.ToBytes() หรือ MsgWriter.WriteFile().MsgStorage, MsgStream, และ MsgStorage.FindStream().MsgStorage.FindStream() และ MsgStorage.FindStorage() เพื่อค้นหารายการย่อยที่มีชื่อ..msg จากไดเรกทอรีเก็บถาวรและดึงข้อมูลเมตา หรือไฟล์แนบ..msg โดยอัตโนมัติและส่งไปยังระบบอีเมลที่ใช้ OutlookMapiMessage.Create(subject, body), ตั้งค่า SenderName, SenderEmailAddress และ HtmlBody.To, Cc, และ Bcc ผ่าน AddRecipient() ด้วยที่อยู่อีเมลและชื่อที่แสดง.AddAttachment() หรือสร้างอ็อบเจกต์ MapiAttachment โดยตรงด้วย Filename, MimeType, ContentId และ Data.message.Save() หรือ message.Save(stream) และ reload with MapiMessage.FromFile() หรือ MapiMessage.FromStream().message.Attachments, และบันทึกแต่ละ attachment.Data ลงดิสก์.message.Subject, message.Body, message.SenderEmailAddress และ message.Recipients โดยไม่ต้องใช้ COM automation..eml มาตรฐาน (RFC 5322 / MIME) ให้เป็นอ็อบเจกต์ MapiMessage เต็มรูปแบบผ่าน MapiMessage.LoadFromEml(stream)MapiMessage กลับเป็นรูปแบบ MIME ด้วย message.SaveToEml() หรือ message.SaveToEml(stream)..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 มาตรฐานและบันทึกเป็นไฟล์ Outlook .msg โดยใช้ตัวแยกวิเคราะห์ MIME ในตัว
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);