1. ผลิตภัณฑ์
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS สำหรับ .NET

อ่าน, สร้าง, และประมวลผลไฟล์ Outlook MSG, คอนเทนเนอร์ CFB, และข้อความ EML จาก .NET — ฟรีและเปิดแหล่งที่มา, ไม่ต้องพึ่งพา Microsoft Outlook.

ไลบรารี .NET แบบเปิดแหล่งที่มาสำหรับไฟล์ MSG, CFB, และ EML

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.

การอ่านและเขียนคอนเทนเนอร์ CFB

  • Open CFB files: โหลดคอนเทนเนอร์ CFB ที่มีอยู่จากเส้นทางไฟล์, สตรีม, หรืออาร์เรย์ไบต์ผ่าน CfbReader.FromFile(), CfbReader.FromStream() หรือ new CfbReader(data).
  • สำรวจโครงสร้างไดเรกทอรี: ทำการวนซ้ำ storages, streams, และ children โดยใช้ IterStorages(), IterStreams(), IterChildren() และ IterTree().
  • แก้ไขเส้นทาง: นำทางโครงสร้างการจัดเก็บแบบซ้อนกันด้วย ResolvePath(names) เพื่อค้นหาสตรีมเฉพาะโดยใช้สายชื่อ
  • เขียนคอนเทนเนอร์ CFB: สร้างเอกสาร CFB อย่างโปรแกรมเมติกด้วย CfbDocument และทำการแปลงเป็นไบต์หรือไฟล์ผ่าน CfbWriter.ToBytes() หรือ CfbWriter.WriteFile().
  • เพิ่มที่เก็บข้อมูลและสตรีม: แนบโหนด CfbStorage และ CfbStream ไปยังโหนดที่เก็บข้อมูลใด ๆ ก่อนทำการซีเรียลไลซ์

ที่ใช้การเข้าถึง CFB

  • การตรวจสอบไฟล์ MSG: CFB เป็นรูปแบบคอนเทนเนอร์สำหรับไฟล์ Outlook .msg — การเข้าถึง CFB โดยตรงทำให้สามารถตรวจสอบและซ่อมแซมเชิงนิติวิทยาศาสตร์ได้.
  • Custom binary formats: แอปพลิเคชันเก่าใด ๆ ที่ใช้ CFB สำหรับการจัดเก็บข้อมูลสามารถอ่านหรือเขียนได้โดยไม่ต้องพึ่งพา COM.
  • การกู้คืนข้อมูล: สำรวจโครงสร้างไดเรกทอรีทั้งหมดและดึงไบต์ของสตรีมดิบจากไฟล์ CFB ที่เสียหายหรือไม่เป็นมาตรฐาน
  • Binary round-trip testing: ทำการแปลงเอกสารเป็นไบต์และโหลดใหม่เพื่อยืนยันการแปลงที่ไม่มีการสูญเสียในการทดสอบอัตโนมัติ.

การอ่านและเขียนไฟล์ MSG

  • Read MSG files: เปิดไฟล์ Outlook MSG ด้วย MsgReader.FromFile() หรือ MsgReader.FromStream() และเข้าถึงสตรีมคุณสมบัติ MAPI, บันทึกผู้รับ, และ sub-storages ของไฟล์แนบ.
  • เขียนไฟล์ MSG: สร้างไฟล์ MSG จาก MsgDocument ด้วย MsgWriter.ToBytes() หรือ MsgWriter.WriteFile().
  • การเข้าถึง MAPI ระดับต่ำ: อ่านสตรีมคุณสมบัติระดับบน, คุณสมบัติที่ตั้งชื่อ, และข้อมูลไฟล์แนบผ่าน MsgStorage, MsgStream, และ MsgStorage.FindStream().
  • การนำทางที่เก็บ MSG: ใช้ MsgStorage.FindStream() และ MsgStorage.FindStorage() เพื่อค้นหารายการย่อยที่มีชื่อ.

ที่ใช้การประมวลผล MSG

  • Email archival pipelines: อ่านเป็นกลุ่มไฟล์ .msg จากไดเรกทอรีเก็บถาวรและดึงข้อมูลเมตา หรือไฟล์แนบ.
  • เครื่องมือการย้ายข้อมูล: แปลงคอลเลกชัน MSG เป็นรูปแบบมาตรฐานเพื่อการนำเข้าไปยังระบบที่ไม่ใช่ Outlook.
  • การค้นพบทางกฎหมาย: แยกวิเคราะห์สตรีมคุณสมบัติ MAPI ดิบเพื่อสกัดฟิลด์ข้อความทั้งหมดรวมถึงคุณสมบัติที่ไม่เป็นมาตรฐาน.
  • การส่งรายงานอัตโนมัติ: สร้างไฟล์ .msg โดยอัตโนมัติและส่งไปยังระบบอีเมลที่ใช้ Outlook

API ข้อความระดับสูง

  • สร้างข้อความ: สร้างอีเมลฉบับเต็มด้วย MapiMessage.Create(subject, body), ตั้งค่า SenderName, SenderEmailAddress และ HtmlBody.
  • เพิ่มผู้รับ: แนบผู้รับ To, Cc, และ Bcc ผ่าน AddRecipient() ด้วยที่อยู่อีเมลและชื่อที่แสดง.
  • จัดการไฟล์แนบ: เพิ่มไฟล์และสตรีมแนบด้วย AddAttachment() หรือสร้างอ็อบเจกต์ MapiAttachment โดยตรงด้วย Filename, MimeType, ContentId และ Data.
  • บันทึกและโหลดใหม่: Serialize with message.Save() หรือ message.Save(stream) และ reload with MapiMessage.FromFile() หรือ MapiMessage.FromStream().

ที่ใช้ API ระดับสูง

  • การสร้างอีเมลอัตโนมัติ: สร้างไฟล์ MSG ส่วนบุคคลหลายพันไฟล์จากบันทึกข้อมูลในงานแบตช์
  • การสร้างฟิกเจอร์ทดสอบ: สร้างไฟล์ MSG ที่เชื่อถือได้พร้อมเนื้อหาที่คาดเดาได้สำหรับชุดทดสอบการบูรณาการ
  • การสกัดไฟล์แนบ: โหลดไฟล์ MSG, ทำการวนซ้ำ message.Attachments, และบันทึกแต่ละ attachment.Data ลงดิสก์.
  • การตรวจสอบคุณสมบัติ: เข้าถึง message.Subject, message.Body, message.SenderEmailAddress และ message.Recipients โดยไม่ต้องใช้ COM automation.

การแปลง EML และ MIME

  • โหลด EML ไปยัง MapiMessage: แปลงไฟล์ .eml มาตรฐาน (RFC 5322 / MIME) ให้เป็นอ็อบเจกต์ MapiMessage เต็มรูปแบบผ่าน MapiMessage.LoadFromEml(stream)
  • Save MapiMessage as EML: ทำการแปลง MapiMessage กลับเป็นรูปแบบ MIME ด้วย message.SaveToEml() หรือ message.SaveToEml(stream).
  • ความแม่นยำของการเดินทางรอบ: หัวเรื่อง, เนื้อหา, HTML เนื้อหา, ผู้ส่ง, ผู้รับ, และไฟล์แนบทั้งหมดจะถูกเก็บรักษาไว้ตลอดการแปลง EML → MSG → EML อย่างต่อเนื่อง.
  • ไม่มีตัวแยก MIME ภายนอก: การแยกวิเคราะห์ EML ถูกดำเนินการโดยเนทีฟภายในไลบรารี — ไม่ต้องพึ่งพา System.Net.Mail

ที่ใช้การแปลง EML

  • การเชื่อมต่อรูปแบบ: รับอีเมลเป็น EML จากเซิร์ฟเวอร์เมลและแปลงเป็น MSG เพื่อการจัดเก็บที่เข้ากันได้กับ Outlook.
  • การปฏิบัติตามมาตรฐาน: แปลงไฟล์ MSG ที่เป็นกรรมสิทธิ์เป็น MIME มาตรฐานเพื่อการส่งถึงระบบขนส่งอีเมลใด ๆ
  • การทำให้เป็นมาตรฐานของการเก็บถาวร: ทำให้ไฟล์เก็บแบบผสมของ .eml และ .msg เป็นรูปแบบเดียว
  • กระบวนการทดสอบ: สร้าง fixtures .eml ในการทดสอบและตรวจสอบว่าพวกมันยังคงอยู่ผ่านการทำรอบ MSG โดยไม่มีการสูญเสียข้อมูล.

อ่านหัวเรื่องจากไฟล์ 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

สร้างอีเมลที่สมบูรณ์พร้อมผู้ส่ง ผู้รับ และไฟล์แนบ จากนั้นเขียนลงไฟล์ 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 เป็น MSG

โหลดไฟล์ .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);
  

ทรัพยากรสนับสนุนและการเรียนรู้

 ภาษาไทย