POP3 सर्वर से ईमेल पुनः प्राप्त करना

पार्स किए बिना डिस्क पर ईमेल सहेजें

POP3 सर्वर से ईमेल संदेश डाउनलोड करने के लिए बिना पार्स किए, आप उपयोग कर सकते हैं save_message Aspose.Email की विधि Pop3Client class। नीचे दिया गया कोड स्निपेट दिखाता है कि कैसे क्रम संख्या (इस केस में 1) का उपयोग करके संदेश सहेजा जाए। save_message विधि मूल EML फ़ॉर्मेट को बिना पार्स किए संरक्षित रखती है:

सहेजने से पहले संदेश पार्स करें

आप विशिष्ट ईमेल संदेश प्राप्त कर सकते हैं उपयोग करके fetch_message विधि Pop3Client class, जो क्लाइंट ऑब्जेक्ट के लिए वांछित क्रम संख्या निर्दिष्ट करता है। नीचे दिया गया कोड नमूना दिखाता है कि कैसे किसी विशेष संदेश को फ़ेच करें और उसके विषय को फ़ाइलनाम बनाकर सेव करें, इसके लिए save msg ऑब्जेक्ट पर मेथड:

import aspose.email as ae

client = ae.clients.pop3.Pop3Client("host", 995, "username", "password", ae.clients.SecurityOptions.AUTO)

# Fetch the message by its sequence number and Save the message using its subject as the file name
msg = client.fetch_message(1)
msg.save("first-message_out.eml", ae.SaveOptions.default_eml)

मानदंड द्वारा सर्वर से ईमेल फ़िल्टर करें

Aspose.Email Pop3Client class प्रदान करता है list_messages() मेथड जो मेलबॉक्स से सभी संदेश प्राप्त करता है। केवल उन संदेशों को प्राप्त करने के लिये जो किसी शर्त से मेल खाते हैं, अतिव्याप्त का उपयोग करें list_messages(query) मेथड जो लेता है MailQuery को आर्ग्यूमेंट के रूप में। MailQuery class विभिन्न प्रॉपर्टीज़ प्रदान करता है जैसे तिथि, विषय, प्रेषक, प्राप्तकर्ता आदि, क्वेरी शर्तों को निर्दिष्ट करने के लिए।

खोज अभिव्यक्ति बनाने के लिए, उपयोग करें MailQueryBuilder class। पहले सभी आवश्यक शर्तें और प्रतिबंध निर्धारित करें, फिर MailQuery ऑब्जेक्ट को MailQueryBuilder द्वारा निर्मित क्वेरी से भरें। MailQueryBuilder. Pop3Client इस MailQuery ऑब्जेक्ट का उपयोग करके सर्वर से फ़िल्टर की गई जानकारी प्राप्त करता है।

निम्नलिखित कोड नमूना दिखाता है कि कैसे विभिन्न मानदंडों जैसे विषय, आंतरिक तिथि, प्रेषक, और प्राप्तकर्ता के आधार पर Gmail खाते से ईमेल फ़िल्टर और प्राप्त करें। यह केस‑सेंसिटिव फ़िल्टरिंग को भी दर्शाता है और जटिल क्वेरीज को प्रभावी रूप से बनाने का तरीका दिखाता है।

  1. Gmail POP3 सर्वर से कनेक्शन स्थापित करें Pop3Client निर्दिष्ट सर्वर पता, पोर्ट, उपयोगकर्ता नाम, और पासवर्ड के साथ क्लास। सुरक्षा विकल्प AUTO पर सेट है सुरक्षित कनेक्शन के लिए।
  2. का एक इंस्टेंस बनाएं MailQueryBuilder ईमेल को फ़िल्टर करने के लिए खोज मानदंड बनाते समय।
  3. विषय द्वारा फ़िल्टरिंग:
    • विषय में "Newsletter" शामिल वाले ईमेल को फ़िल्टर शर्त के रूप में निर्दिष्ट किया गया है।
  4. आंतरिक तिथि द्वारा फ़िल्टरिंग:
    • वर्तमान तिथि पर प्राप्त ईमेल के लिए फ़िल्टर सेट किया गया है।
    • एक अतिरिक्त फ़िल्टर जोड़ा गया है ताकि पिछले हफ्ते में प्राप्त ईमेल खोजे जा सकें।
  5. प्रेषक द्वारा फ़िल्टरिंग:
    • फ़िल्टर लागू किए गए हैं ताकि विशेष ईमेल एड्रेस (saqib.razzaq@127.0.0.1) से ईमेल और एक विशिष्ट डोमेन (SpecificHost.com) से ईमेल खोजे जा सकें।
  6. प्राप्तकर्ता द्वारा फ़िल्टरिंग:
    • विशिष्ट प्राप्तकर्ता को ईमेल खोजने के लिए फ़िल्टर निर्दिष्ट किया गया है।
  7. OR ऑपरेटर का उपयोग करके क्वेरी को मिलाएं ताकि ईमेल या तो दिए गए विषय से मेल खाएँ या किसी विशिष्ट पते से भेजे गए हों।
  8. केस‑सेंसिटिव फ़िल्टरिंग:
    • विषय में "Newsletter" शामिल करने के लिए केस‑सेंसिटिव फ़िल्टर निर्दिष्ट किया गया है (True पैरामीटर द्वारा दर्शाया गया)।
  9. संदेशों की सूची:
    • list_messages() मेथड को निर्मित क्वेरी के साथ बुलाया जाता है ताकि मेलबॉक्स से फ़िल्टर किए गए संदेश प्राप्त हों।
  10. अंत में, फ़िल्टर किए गए संदेशों की गिनती प्रिंट करें।

तिथि द्वारा ईमेल फ़िल्टर करें

डिलीवरी तिथि द्वारा संदेश प्राप्त करने हेतु, उपयोग करें internal_date कोड नमूने में नीचे दिखाए अनुसार प्रॉपर्टी:

import aspose.email as ae
from datetime import datetime

builder = ae.tools.search.MailQueryBuilder()
builder.internal_date.on(datetime.now())

तिथि सीमा द्वारा ईमेल फ़िल्टर करें

तिथि सीमा के भीतर संदेश प्राप्त करने के लिए, समान उपयोग करें internal_date कोड नमूने में नीचे दिखाए अनुसार तिथि सीमा निर्दिष्ट करने वाली प्रॉपर्टी:

import aspose.email as ae
from datetime import datetime, timedelta

builder = ae.tools.search.MailQueryBuilder()
# Emails that arrived in last 7 days
builder.internal_date.before(datetime.now())
builder.internal_date.since(datetime.today() - timedelta(days=7))

प्रेषक द्वारा ईमेल फ़िल्टर करें

विशिष्ट प्रेषक से संदेश प्राप्त करने हेतु, उपयोग करें from_address कोड नमूने में नीचे दिखाए अनुसार प्रॉपर्टी:

import aspose.email as ae

builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("saqib.razzaq@127.0.0.1")

डोमेन द्वारा ईमेल फ़िल्टर करें

विशिष्ट डोमेन से संदेश प्राप्त करने हेतु, उपयोग करें from_address कोड नमूने में नीचे दिखाए अनुसार प्रॉपर्टी:

import aspose.email as ae

builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("SpecificHost.com")

प्राप्तकर्ता द्वारा ईमेल फ़िल्टर करें

विशिष्ट प्राप्तकर्ता के लिए संदेश प्राप्त करने हेतु, उपयोग करें to कोड नमूने में नीचे दिखाए अनुसार प्रॉपर्टी:

import aspose.email as ae

builder = ae.tools.search.MailQueryBuilder()
builder.to.contains("recipient")

जटिल खोज क्वेरी बनाएं

कभी-कभी एक से अधिक क्वेरी को संतुष्ट करना आवश्यक होता है। Aspose.Email कई कथनों में क्वेरी को संयोजित करना संभव बनाता है। एक MailQueryBuilder ऑब्जेक्ट और उसकी प्रॉपर्टीज़ का उपयोग करके विशिष्ट क्वेरी बनाएं।

AND के साथ क्वेरी मिलाएं

निम्नलिखित कोड स्निपेट दिखाता है कि कैसे AND ऑपरेटर के साथ क्वेरी को मिलाया जाए:

import aspose.email as ae
from datetime import datetime, timedelta

builder = ae.tools.search.MailQueryBuilder()
builder.internal_date.before(datetime.now())
builder.internal_date.since(datetime.today() - timedelta(days=7))
builder.from_address.contains("SpecificHost.com")

OR के साथ क्वेरी मिलाएं

निम्नलिखित कोड स्निपेट दिखाता है कि कैसे OR ऑपरेटर के साथ क्वेरी को मिलाया जाए:

import aspose.email as ae

builder = ae.tools.search.MailQueryBuilder()
builder.either(builder.subject.contains("test"), builder.from_address.contains("noreply@host.com"))

केस‑सेंसिटिव फ़िल्टर लागू करें

API भी केस सेंसिटिव मानदंड के आधार पर मेलबॉक्स से ईमेल फ़िल्टर करने की क्षमता प्रदान करता है। निम्नलिखित मेथड्स StringComparisonField class केस सेंसिटिव फ्लैग्स निर्दिष्ट करके ईमेल खोजने की क्षमता प्रदान करता है।

Method Aspose.Email.StringComparisonField.contains(value, ignore_case) Method Aspose.Email.StringComparisonField.equals(value, ignore_case) Method Aspose.Email.StringComparisonField.not_contains(value, ignore_case) Method Aspose.Email.StringComparisonField.not_equals(value, ignore_case)

निम्नलिखित कोड स्निपेट दिखाता है कि इस क्षमता को अपने प्रोजेक्ट में कैसे लागू करें:

import aspose.email as ae

builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("noreply@host.com", True)