सर्वर से संदेशों के साथ काम करना

Contents
[ ]

मेलबॉक्स जानकारी प्राप्त करना

हम GetMailBoxSize() और GetMailBoxInfo() मेथड्स का उपयोग करके मेलबॉक्स के बारे में जानकारी जैसे संदेशों की संख्या और मेलबॉक्स आकार प्राप्त कर सकते हैं।

  • GetMailBoxSize() मेथड बाइट्स में मेलबॉक्स का आकार लौटाता है।
  • GetMailBoxInfo() मेथड Pop3MailBoxInfo प्रकार का ऑब्जेक्ट लौटाता है।

यह भी संभव है कि MessageCount संपत्ति का उपयोग करके संदेशों की संख्या और OccupiedSize संपत्ति का उपयोग करके आकार प्राप्त किया जाए। निम्नलिखित नमूना कोड दिखाता है कि मेलबॉक्स की जानकारी कैसे प्राप्त करें। यह दिखाता है कैसे:

  1. एक बनाएं Pop3Client.
  2. POP3 सर्वर से कनेक्ट करें।
  3. मेलबॉक्स का आकार प्राप्त करें।
  4. मेलबॉक्स जानकारी प्राप्त करें।
  5. मेलबॉक्स में संदेशों की संख्या प्राप्त करें।
  6. अधिकार लिया हुआ आकार प्राप्त करें।

मेलबॉक्स में ईमेल गिनती प्राप्त करना

निम्नलिखित कोड स्निपेट दिखाता है कि कैसे मेलबॉक्स में ईमेल संदेशों की गिनती की जाए।

Aspose.Email डेवलपर्स को ईमेल के साथ कई विभिन्न तरीकों से काम करने की अनुमति देता है। उदाहरण के लिए, वे ईमेल डाउनलोड करने का निर्णय लेने से पहले हेडर जानकारी प्राप्त कर सकते हैं। या वे सर्वर से ईमेल प्राप्त करके बिना पार्स किए (तेज़) या पार्स करने के बाद (धीमा) सहेज सकते हैं। यह लेख दिखाता है कि कैसे ईमेल प्राप्त और परिवर्तित किए जाएँ।

ईमेल हेडर जानकारी प्राप्त करना

ईमेल हेडर हमें संदेश की जानकारी दे सकते हैं जिससे हम यह तय कर सकें कि पूरी ईमेल संदेश प्राप्त करना है या नहीं। सामान्यतः, हेडर जानकारी में प्रेषक, विषय, प्राप्ति तिथि आदि शामिल होते हैं (ईमेल हेडर का विस्तृत वर्णन Customizing Email Headers में है। वह विषय विशेष रूप से SMTP के साथ ईमेल भेजने के बारे में है, लेकिन ईमेल हेडर की सामग्री POP3 ईमेल के लिए भी वैध है)। निम्नलिखित उदाहरण दिखाते हैं कि कैसे POP3 सर्वर से संदेश की क्रम संख्या द्वारा ईमेल हेडर प्राप्त करें।

ईमेल संदेश प्राप्त करना

Aspose.Email.Pop3 क्लास घटक POP3 सर्वर से ईमेल संदेश प्राप्त करने और उन्हें MailMessage इंस्टेंस में पार्स करने की क्षमता प्रदान करता है, MailMessage घटकों की मदद से। MailMessage क्लास में ईमेल सामग्री को हेरफेर करने के लिए कई गुण और मेथड्स होते हैं। Pop3Client क्लास के FetchMessage फ़ंक्शन का उपयोग करके आप सीधे POP3 सर्वर से MailMessage इंस्टेंस प्राप्त कर सकते हैं। नीचे दिया गया कोड स्निपेट दिखाता है कि कैसे POP3 सर्वर से पूर्ण ईमेल संदेश प्राप्त किया जाता है।

यूनिक आईडी का उपयोग करके संदेश सारांश जानकारी प्राप्त करना

API का POP3 क्लाइंट संदेश का अद्वितीय आईडी उपयोग करके सर्वर से संदेश सारांश जानकारी प्राप्त कर सकता है। यह पूरी संदेश को पहले प्राप्त किए बिना संदेश की संक्षिप्त जानकारी शीघ्रता से प्रदान करता है। नीचे दिया गया कोड स्निपेट दिखाता है कि कैसे संदेश सारांश जानकारी प्राप्त करें।

मल्टीकनेक्शन के साथ संदेशों को सूचीबद्ध करना

भारी‑लोड वाले ऑपरेशनों के लिए Aspose.Email प्रदान करता है ‘use_multi_connection’ प्रॉपर्टी का Pop3Client class कई कनेक्शन का उपयोग करके ईमेल पुनः प्राप्त करने के लिए। हालांकि, इस मोड का उपयोग हमेशा प्रदर्शन में वृद्धि का कारण नहीं बनता। नीचे दिया गया कोड स्निपेट दिखाता है कि कैसे POP3 सर्वर से कनेक्शन स्थापित करें, क्लाइंट को अधिकतम 5 समकालिक कनेक्शन की अनुमति देने के लिए कॉन्फ़िगर करें और सर्वर पर मौजूद संदेशों की जानकारी प्राप्त करने के लिए मल्टी‑कनेक्शन मोड चालू करें:

import aspose.email as ae

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

client.connections_quantity = 5
client.use_multi_connection = ae.clients.MultiConnectionMode.ENABLE
message_info_coll = client.list_messages()

सर्वर से संदेश प्राप्त करना और डिस्क पर सहेजना

पार्स किए बिना डिस्क पर संदेश सहेजें

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

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

‘fetch_message’ मेथड का उपयोग करें जो क्लाइंट ऑब्जेक्ट द्वारा बनाया गया है Pop3Client class विशेष क्रम संख्या वाले संदेश को पुनः प्राप्त करने के लिए। नीचे दिया गया कोड स्निपेट दर्शाता है कि कैसे विशिष्ट संदेश को पुनः प्राप्त करें और उसके विषय को फ़ाइलनाम बनाकर ‘save’ मेथड को कॉल करके सहेजें:

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)

प्रेषक, प्राप्तकर्ता या तिथि के आधार पर संदेश फ़िल्टर करना

Pop3Client क्लास, जिसे POP3 सर्वर से कनेक्ट करने में विवरण दिया गया है, list_messages() मेथड प्रदान करता है जो मेलबॉक्स से सभी संदेश प्राप्त करता है। केवल उन संदेशों को प्राप्त करने के लिए जो कुछ शर्तों से मेल खाते हैं, ओवरलोडेड ListMessages() मेथड का उपयोग करें जो MailQuery को आर्गुमेंट के रूप में लेता है। MailQuery क्लास विभिन्न प्रॉपर्टीज़ प्रदान करता है जैसे तिथि, विषय, प्रेषक, प्राप्तकर्ता आदि। MailQueryBuilder क्लास का उपयोग खोज अभिव्यक्ति बनाने के लिए किया जाता है। पहले सभी शर्तें और प्रतिबंध सेट करें और फिर MailQuery को MailQueryBuilder द्वारा निर्मित प्रश्न से भरें। Pop3Client इस MailQuery ऑब्जेक्ट का उपयोग करके सर्वर से फ़िल्टर की गई जानकारी निकालता है। यह लेख दिखाता है कि कैसे एक मेलबॉक्स से ईमेल संदेशों को फ़िल्टर किया जाए। पहला उदाहरण तिथि और विषय के आधार पर संदेशों को फ़िल्टर करने को दर्शाता है। हम अन्य मानदंडों पर फ़िल्टर करने और अधिक जटिल क्वेरी बनाने के तरीकों को भी दिखाते हैं। यह डेट और टाइम फ़िल्टर का उपयोग करके विशिष्ट ईमेल को मेलबॉक्स से प्राप्त करने को भी दिखाता है। साथ ही केस‑सेंसिटिव फ़िल्टरिंग को लागू करने का तरीका भी दर्शाता है।

मेलबॉक्स से संदेश फ़िल्टर करना

मेलबॉक्स से संदेशों को फ़िल्टर करने के लिए:

  1. POP3 सर्वर से कनेक्ट करें और लॉग इन करें।
  2. MailQuery का एक इंस्टेंस बनाएं और वांछित प्रॉपर्टीज़ सेट करें।
  3. Pop3Client.list_messages(MailQuery query) मेथड को कॉल करें और फ़िल्टर किए गए संदेशों को प्राप्त करने के लिए MailQuery को पैरामीटर के रूप में पास करें।

निम्नलिखित कोड स्निपेट दर्शाता है कि कैसे POP3 मेलबॉक्स से जुड़ें और उन संदेशों को प्राप्त करें जो आज आए हैं और विषय में "newsletter" शब्द शामिल है।

विशिष्ट मानदंडों को पूरा करने वाले संदेश प्राप्त करना

Aspose.Email जटिल खोज मानदंड बना कर ईमेल संदेशों को क्वेरी और फ़िल्टर करने की भी सुविधा देता है। इसके लिए उपयोग करें MailQueryBuilder class और उसकी प्रॉपर्टीज़। प्राप्त करने के मानदंड इस प्रकार हैं:

  • वितरण तिथि द्वारा संदेश प्राप्त करें।
  • एक सीमा के भीतर संदेश प्राप्त करें।
  • एक विशिष्ट प्रेषक से संदेश प्राप्त करें।
  • एक विशिष्ट डोमेन से संदेश प्राप्त करें।
  • एक विशिष्ट प्राप्तकर्ता को संदेश प्राप्त करें।

आज की तिथि

वितरण तिथि द्वारा संदेश प्राप्त करने हेतु, नीचे दिए गए कोड स्निपेट में दिखाए अनुसार ‘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)