فیلتر و استخراج پیام‌های MBOX

نقش فیلتر پیام

هنگام کار با آرشیوهای بزرگ MBOX، بارگذاری هر پیام در حافظه می‌تواند ناکارآمد و غیرضروری باشد. در اکثر موارد، توسعه‌دهندگان فقط برای اسکن متادیتای پایه مانند موضوع، فرستنده، گیرنده یا زمان‌مهر نیاز دارند تا:

  • نمایش فهرست پیام‌ها در رابط کاربری
  • اعمال فیلترهای سفارشی قبل از استخراج
  • تولید گزارش‌ها یا خلاصه‌ها
  • نمایه‌سازی پیام‌ها برای جستجو

فیلتر کردن از هزینهٔ پردازش کامل بدنهٔ پیام یا پیوست‌ها جلوگیری می‌کند و برنامه‌ها را سریع‌تر و مقیاس‌پذیرتر می‌سازد.

دسترس به متادیتای پیام

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 کلاس فراهم می‌کند 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 امکان فیلتر یا جستجوی پیام‌ها در آرشیوهای صندوق پست را بر پایهٔ پرس‌وجوهای سفارشی فراهم می‌کند. این ویژگی به توسعه‌دهندگان اجازه می‌دهد فقط پیام‌هایی که با معیارهای خاص مطابقت دارند را بازیابی کنند و عملکرد و کارایی هنگام کار با فایل‌های آرشیو ایمیل بزرگ را بهبود می‌بخشد.

نمونه کد زیر نشان می‌دهد چگونه معیارهای جستجو را با استفاده از API MailQuery بر روی یک فایل ذخیره‌سازی ایمیل اعمال کنیم. در این مثال، پیام‌ها انتخاب می‌شوند اگر موضوع آن‌ها شامل عبارت "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");