การกรองและสกัดข้อความ MBOX

บทบาทของการกรองข้อความ

เมื่อทำงานกับอาร์ไคฟ์ MBOX ขนาดใหญ่ การโหลดทุกข้อความเข้าสู่หน่วยความจำอาจทำให้ประสิทธิภาพต่ำและไม่จำเป็น ในหลายกรณี นักพัฒนาต้องการสแกนเมตาดาต้าพื้นฐานเช่นหัวเรื่อง ผู้ส่ง ผู้รับ หรือเวลาเท่านั้นเพื่อ:

  • แสดงรายการข้อความใน UI
  • ใช้ตัวกรองที่กำหนดเองก่อนการสกัด
  • สร้างรายงานหรือสรุป
  • ทำดัชนีข้อความเพื่อการค้นหา

การกรองช่วยหลีกเลี่ยงค่าใช้จ่ายในการแยกวิเคราะห์เนื้อหาข้อความหรือไฟล์แนบเต็มรูปแบบ ทำให้แอปพลิเคชันเร็วขึ้นและสามารถขยายขนาดได้ดีขึ้น

เข้าถึงเมตาดาต้าข้อความ

Aspose.Email ให้ MboxMessageInfo คลาสที่ออกแบบมาสำหรับเข้าถึงเมตาดาต้าข้อความพื้นฐานโดยไม่ต้องอ่านเนื้อหา MailMessage เต็มรูปแบบ ทำหน้าที่เป็นอ็อบเจกต์สรุปและจะถูกส่งกลับเมื่อเรียก MboxStorageReader.EnumerateMessageInfo().

คุณสมบัติหลักที่เปิดเผยโดย MboxMessageInfo เพื่อดึงข้อมูลเกี่ยวกับข้อความรวมถึง:

  • DateTime Date - รับวันที่ของข้อความ
  • MailAddress From - รับที่อยู่อีเมลผู้ส่ง
  • string Subject - รับหัวข้อของข้อความ
  • MailAddressCollection ถึง - รับคอลเลกชันที่อยู่ของผู้รับข้อความ
  • MailAddressCollection CC - รับคอลเลกชันที่อยู่ที่ประกอบด้วยผู้รับ CC
  • MailAddressCollection Bcc - รับคอลเลกชันที่อยู่ที่ประกอบด้วยผู้รับ BCC ของข้อความ
MboxStorageReader reader = MboxStorageReader.CreateReader(fileName, new MboxLoadOptions());

foreach (var mboxMessageInfo in reader.EnumerateMessageInfo())
{
    Console.Writeline($"Subject: {mboxMessageInfo.Subject}");
    Console.Writeline($"Date: {mboxMessageInfo.Date}");
    Console.Writeline($"From: {mboxMessageInfo.From}");
    Console.Writeline($"To: {mboxMessageInfo.To}");
    Console.Writeline($"CC: {mboxMessageInfo.CC}");
    Console.Writeline($"Bcc: {mboxMessageInfo.Bcc}");
}

สกัดข้อความโดย EntryId

นี้ MboxStorageReader คลาสนี้รวมถึง EnumerateMessageInfo() เมธอด ซึ่งทำให้คุณสามารถวนรอบแต่ละข้อความในไฟล์ MBOX ได้ ด้วยการใช้เมธอดนี้ จะสามารถดึงข้อความแต่ละรายการได้โดยไม่ต้องเดินทางผ่านที่เก็บทั้งหมดซ้ำหลายครั้ง ซึ่งช่วยเพิ่มประสิทธิภาพและลดเวลาในการประมวลผล

นี้ MboxMessageInfo class ให้ EntryId คุณสมบัติ ซึ่งให้การเข้าถึงตัวระบุที่เป็นเอกลักษณ์ของแต่ละข้อความในไฟล์ MBOX ตัวระบุนี้สามารถจัดเก็บในฐานข้อมูลหรือใช้เป็นอ้างอิงเพื่อค้นหาและดึงข้อความเฉพาะได้อย่างรวดเร็วเมื่อจำเป็น

นี้ ExtractMessage(string id) เมธอดใน MboxStorageReader คลาสนี้ช่วยนักพัฒนาในการดึงข้อความโดยอิงจาก EntryId ที่เป็นเอกลักษณ์ของแต่ละข้อความ ด้วย ExtractMessage(string id) เมธอดนี้ คุณสามารถใช้ EntryId ที่เก็บไว้เพื่อดึงข้อความที่สอดคล้องและทำการดำเนินการเพิ่มเติมกับมัน

ตัวอย่างโค้ดต่อไปนี้สาธิตวิธีดึงข้อความจากไฟล์ MBOX โดยใช้ตัวระบุ:

MboxStorageReader reader = MboxStorageReader.CreateReader("my.mbox", new MboxLoadOptions());

foreach (MboxMessageInfo msgInfo in reader.EnumerateMessageInfo())
{
    MailMessage eml = reader.ExtractMessage(msgInfo.EntryId, new EmlLoadOptions());
}

กรองและค้นหาอีเมล MBOX ด้วย MailQuery

Aspose.Email สำหรับ .NET ให้ความสามารถในการกรองหรือค้นหาข้อความภายในอาร์ไคฟ์กล่องจดหมายโดยใช้คิวรีแบบกำหนดเอง ทำให้นักพัฒนาสามารถดึงข้อความที่ตรงกับเงื่อนไขเฉพาะเท่านั้น ช่วยปรับปรุงประสิทธิภาพและการใช้งานเมื่อทำงานกับไฟล์อาร์ไคฟ์อีเมลขนาดใหญ่

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้เกณฑ์การค้นหาในไฟล์ที่เก็บเมลด้วย MailQuery API ในตัวอย่างนี้ ข้อความจะถูกเลือกหากหัวเรื่องมีวลี "Project Update" และถูกส่งก่อนวันที่วันนี้

using Aspose.Email.Storage.Mbox;
using Aspose.Email;

var reader = MboxStorageReader.CreateReader("input.mbox", new MboxLoadOptions());
var mqb = new MailQueryBuilder();
mqb.Subject.Contains("Project Update");
mqb.SentDate.Before(DateTime.Today);

foreach (var message in reader.EnumerateMessages(mqb.GetQuery()))
{
    Console.WriteLine("Subject: " + message.Subject);
}

กำหนดค่าตัวเลือกการโหลดเมื่ออ่านข้อความจาก MBOX

คุณลักษณะต่อไปนี้จะช่วยให้คุณระบุตัวเลือกต่างๆ ที่เกี่ยวกับการโหลดและประมวลผลข้อความ:

  • คุณสมบัติ MailStorageConverter.MboxMessageOptions - รับหรือกำหนดตัวเลือกการโหลดอีเมลเมื่อทำการแยกวิเคราะห์ที่เก็บ Mbox

  • เมธอด MboxrdStorageReader.ReadNextMessage(EmlLoadOptions options) - พารามิเตอร์ EmlLoadOptions ระบุตัวเลือกเมื่ออ่านข้อความจากที่เก็บ Mbox

var reader = new MboxrdStorageReader(fileName, new MboxLoadOptions());
// Read messages preserving tnef attachments.
var eml = reader.ReadNextMessage(new EmlLoadOptions {PreserveTnefAttachments = true});
MailStorageConverter.MboxMessageOptions(new EmlLoadOptions {PreserveTnefAttachments = true});
// Convert messages from mbox to pst preserving tnef attachments.
var pst = MailStorageConverter.mboxToPst("Input.mbox", "Output.pst");