MBOX संदेशों का फ़िल्टरिंग और एक्सट्रैक्शन

संदेश फ़िल्टरिंग की भूमिका

बड़े MBOX आर्काइव्स के साथ काम करते समय, हर संदेश को मेमोरी में लोड करना अक्षम और अनावश्यक हो सकता है। अधिकांश मामलों में, डेवलपर्स को केवल विषय, प्रेषक, प्राप्तकर्ता या टाइमस्टैम्प जैसे बुनियादी मेटाडेटा को स्कैन करने की आवश्यकता होती है ताकि:

  • UI में संदेशों की सूची दिखाएँ
  • एक्सट्रैक्शन से पहले कस्टम फ़िल्टर लागू करें
  • रिपोर्ट या सारांश बनाएं
  • सर्च के लिए संदेशों को अनुक्रमित करें

फ़िल्टरिंग पूरी संदेश बॉडी या अटैचमेंट्स को पार्स करने के ओवरहेड को हटाती है, जिससे एप्लिकेशन तेज़ और अधिक स्केलेबल बनते हैं।

संदेश मेटाडेटा तक पहुँचें

Aspose.Email प्रदान करता है MboxMessageInfo क्लास जो पूर्ण MailMessage सामग्री को पढ़े बिना बुनियादी संदेश मेटाडेटा तक पहुंच के लिए डिज़ाइन किया गया है। यह एक सारांश वस्तु के रूप में कार्य करती है और कॉल करने पर लौटाया जाता है MboxStorageReader.EnumerateMessageInfo().

द्वारा उजागर प्रमुख गुण MboxMessageInfo संदेश के बारे में जानकारी पुनः प्राप्त करने के लिए शामिल करें:

  • DateTime Date - संदेश की तिथि प्राप्त करता है
  • MailAddress From - प्रेषक (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());
}

MailQuery का उपयोग करके MBOX ईमेल्स को फ़िल्टर और सर्च करें

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");