تصفية واستخراج رسائل 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 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 for .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");