IMAP ईमेल फ़िल्टरिंग - विधियाँ, मानदंड और कोड उदाहरण
बेसिक संदेश फ़िल्टरिंग
यह ImapClient class प्रदान करता है ListMessages() मेथड जो मेलबॉक्स से सभी संदेश प्राप्त करता है। केवल उन संदेशों को प्राप्त करने के लिये जो किसी शर्त से मेल खाते हैं, अतिव्याप्त का उपयोग करें ListMessages() मेथड जो लेता है MailQuery को आर्ग्यूमेंट के रूप में। MailQuery क्लास विभिन्न प्रॉपर्टीज़ प्रदान करता है जो शर्तें निर्दिष्ट करती हैं, जैसे तिथि, विषय, प्रेषक, प्राप्तकर्ता आदि। पहला उदाहरण दिखाता है कि तिथि और विषय के आधार पर संदेशों को कैसे फ़िल्टर किया जाए। हम अन्य मानदंडों पर फ़िल्टर करने और अधिक जटिल क्वेरी बनाने का भी प्रदर्शन करते हैं। API केस-सेंसिटिव खोज मानदंड लागू करके सटीक फ़िल्टरिंग मानदंड से मेल खाने की क्षमता भी प्रदान करता है। API मेलबॉक्स से संदेशों को फ़िल्टर करने के लिए खोज स्ट्रिंग की एन्कोडिंग निर्दिष्ट करने की अनुमति भी देता है।
मेलबॉक्स से संदेश फ़िल्टर करें
- एक IMAP सर्वर से कनेक्ट हों और लॉग इन करें
- का एक इंस्टेंस बनाएं MailQuery और प्रॉपर्टीज़ सेट करें
- कॉल करें ImapClient.ListMessages(MailQuery query) विधि और पास करें MailQuery केवल फ़िल्टर किए गए संदेश प्राप्त करने के लिए पैरामीटर के साथ।
निम्नलिखित कोड स्निपेट दिखाता है कि कैसे एक IMAP मेलबॉक्स से कनेक्ट हों और आज आए संदेशों को प्राप्त करें जिनके विषय में "newsletter" शब्द हो।
विशिष्ट मानदंडों द्वारा संदेश फ़िल्टर करें
ऊपर के कोड नमूने ईमेल विषय और तिथि के आधार पर संदेशों को फ़िल्टर करता है। हम अन्य प्रॉपर्टीज़ का उपयोग करके अन्य समर्थित शर्तें भी सेट कर सकते हैं। नीचे कुछ उदाहरण दिए गए हैं जो शर्तों को सेट करने में … का उपयोग करके MailQuery. निम्नलिखित कोड स्निपेट्स दिखाते हैं कि ईमेल कैसे फ़िल्टर किए जाएँ:
- आज की तिथि।
- एक तिथि सीमा।
- एक विशिष्ट प्रेषक से।
- एक विशिष्ट डोमेन से।
- एक विशिष्ट प्राप्तकर्ता से।
आज की तिथि
निम्नलिखित कोड स्निपेट दिखाता है कि आज की तिथि पर ईमेल कैसे फ़िल्टर करें।
तारीख सीमा
नीचे दिया गया कोड स्निपेट दर्शाता है कि तिथि रेंज पर ईमेल कैसे फ़िल्टर करें।
विशिष्ट प्रेषक
निम्नलिखित कोड स्निपेट दिखाता है कि विशिष्ट प्रेषक पर ईमेल कैसे फ़िल्टर करें।
विशिष्ट डोमैन्
निम्नलिखित कोड स्निपेट दिखाता है कि विशिष्ट डोमेन पर ईमेल कैसे फ़िल्टर करें।
विशिष्ट प्राप्तकर्ता
निम्नलिखित कोड स्निपेट दिखाता है कि विशिष्ट प्राप्तकर्ता पर ईमेल कैसे फ़िल्टर करें।
एडवांस्ड क्वेरी निर्माण
यदि विभिन्न MailQueryBuilder प्रॉपर्टीज़ अलग-अलग कथनों में सेट की गई हैं, तब सभी शर्तें मेल खाएँगी। उदाहरण के लिए, यदि हम एक तिथि सीमा और एक विशिष्ट होस्ट से संदेश प्राप्त करना चाहते हैं, तो हमें तीन कथन लिखने होंगे।
AND के साथ क्वेरी मिलाएं
निम्नलिखित कोड स्निपेट दिखाता है कि कैसे AND के साथ क्वेरीज़ को संयोजित किया जाए।
OR के साथ क्वेरी मिलाएं
MailQueryBuilder प्रदान करता है Or() मेथड जो दो लेता है MailQuery इंस्टेंसेज़ को पैरामीटर के रूप में लेता है। यह उन संदेशों को प्राप्त करता है जो निर्दिष्ट दो शर्तों में से किसी एक से मेल खाते हैं। निम्नलिखित कोड स्निपेट दिखाता है कि कैसे उन संदेशों को फ़िल्टर करें जिनके विषय में “test” है या प्रेषक “noreply@host.com” है। आगामी कोड स्निपेट दिखाता है कि OR के साथ क्वेरी कैसे मिलाएं।
InternalDate के आधार पर फ़िल्ट्रेशन
सर्वर से संदेश InternalDate के आधार पर निकाले जा सकते हैं, लेकिन कभी-कभी सर्वर सभी संदेश इनबॉक्स में दिखाई देने वाले नहीं लौटाता। इसका कारण सर्वर टाइमज़ोन हो सकता है क्योंकि सभी सर्वर UTC नहीं हो सकते जैसे Gmail. Aspose 008 SEARCH ON 4-May-2014 जैसी कमांड भेजता है जैसा कि IMAP प्रोटोकॉल हालांकि परिणाम सर्वर समय क्षेत्र सेटिंग्स के कारण भिन्न हो सकते हैं। एक नया सदस्य जोड़ा गया है ImapMessageInfo as InternalDate जो संदेशों को फ़िल्टर करने में और मदद करता है। निम्नलिखित कोड स्निपेट उपयोग दिखाता है InternalDate संदेशों को फ़िल्टर करने के लिए।
केस‑सेन्सिटिव फ़िल्टरिंग
निम्नलिखित कोड स्निपेट दिखाता है कि केस-सेंसिटिव ईमेल फ़िल्टरिंग का उपयोग कैसे किया जाए।
क्वेरी बिल्डर के लिए एन्कोडिंग निर्दिष्ट करें
API का ImapQueryBuilder कन्स्ट्रक्टर का उपयोग खोज स्ट्रिंग के लिए एन्कोडिंग निर्दिष्ट करने के लिए किया जा सकता है। इसे भी उपयोग करके सेट किया जा सकता है DefaultEncoding MailQueryBuilder की प्रॉपर्टी। निम्नलिखित कोड स्निपेट दिखाता है कि क्वेरी बिल्डर के लिए एन्कोडिंग कैसे निर्दिष्ट करें।
कस्टम फ़िल्टरिंग विकल्प
कस्टम फ़्लैग के साथ संदेश फ़िल्टर करें
फ़िल्टरिंग के लिए कस्टम सर्च
उदाहरण के लिए, RFC 3501 मानक संदेश में संलग्नकों की उपस्थिति के आधार पर खोज की अनुमति नहीं देता है। लेकिन Gmail प्रदान करता है IMAP एक्सटेंशन जो इस प्रकार की खोज करने की अनुमति देते हैं। अगला कोड स्निपेट दिखाता है कि संबंधित क्वेरी कैसे बनाएं।
ImapQueryBuilder queryBuilder = new ImapQueryBuilder();
queryBuilder.CustomSearch("X-GM-RAW \"has:attachment\"");
MailQuery mailQuery = queryBuilder.GetQuery();
ImapMessageInfoCollection messageInfoCollection = imapClient.ListMessages(mailQuery);
पेजिंग समर्थन के साथ संदेश फ़िल्टर करें
यह ImapClient मेलबॉक्स से संदेशों को खोजने और पेजिंग समर्थन के साथ उन्हें सूचीबद्ध करने की क्षमता प्रदान करता है। निम्नलिखित कोड स्निपेट दिखाता है कि पेजिंग समर्थन के साथ संदेशों को कैसे फ़िल्टर किया जाए।