Python में IMAP सर्वरों से कनेक्ट करें

Aspose.Email for Python via .NET में शामिल है ImapClient class, जो डेवलपर्स को IMAP (Internet Message Access Protocol) का उपयोग करके मेल सर्वरों से कनेक्ट करने की अनुमति देता है। यह क्लास Python एप्लिकेशन में सुरक्षित और कुशल ईमेल प्रबंधन सक्षम करता है, जिसमें संदेशों को प्राप्त करना, पढ़ना, स्थानांतरित करना, हटाना और अपडेट करना शामिल है।

IMAP क्लाइंट का उपयोग करके, आप उपयोगकर्ताओं को प्रमाणीकृत कर सकते हैं, मेलबॉक्स फ़ोल्डर प्रबंधित कर सकते हैं, SSL के माध्यम से कनेक्ट हो सकते हैं, कस्टम टाइमआउट सेट कर सकते हैं, और प्रॉक्सी सर्वरों या CRAM-MD5 प्रमाणीकरण के माध्यम से ईमेल खातों तक पहुँच सकते हैं।

बेसिक IMAP कनेक्शन

Aspose.Email का उपयोग करके IMAP सर्वर से कनेक्ट करने के लिए, इन तीन सरल चरणों का पालन करें:

  1. का एक इंस्टेंस बनाएं ImapClient क्लास।
  2. होस्टनेम, पोर्ट, उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट करें।
  3. वांछित सुरक्षा विकल्प निर्दिष्ट करें।

नीचे दिया गया कोड उदाहरण दिखाता है कि प्रोग्रामेटिक रूप से IMAP सर्वर से कैसे कनेक्ट किया जाए:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")

IMAP कनेक्शन के लिए SSL सक्षम करें

SSL-सक्षम IMAP सर्वर से कनेक्ट करने के लिए, सेट करें security_options SSLImplicit के लिए प्रॉपर्टी:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")

# Set the security mode to implicit
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT

SOCKS प्रॉक्सी द्वारा कनेक्ट करें

Aspose.Email प्रॉक्सी-आधारित कनेक्शन के लिए SOCKS संस्करण 4, 4a, और 5 का समर्थन करता है। SOCKS प्रॉक्सी के माध्यम से कनेक्ट करने के लिए नीचे दिए गए चरणों का उपयोग करें:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", "username", "password")
client.security_options = ae.clients.SecurityOptions.AUTO

proxy = ae.clients.SocksProxy("192.168.203.142", 1080, ae.clients.SocksVersion.SOCKS_V5)
client.proxy = proxy

client.select_folder("Inbox")

HTTP प्रॉक्सी के माध्यम से सर्वर से कनेक्ट होना

Aspose.Email HTTP प्रॉक्सी के माध्यम से भी IMAP कनेक्शन की अनुमति देता है:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", "username", "password")
client.proxy = ae.clients.HttpProxy("18.222.124.59", 8080)
client.select_folder("Inbox")

रीड-ऑनली मेलबॉक्स एक्सेस

मेलबॉक्स की सामग्री में परिवर्तन को रोकने के लिए, रीड-ऑनली मोड सक्षम करें। The read_only जब प्रॉपर्टी True पर सेट होती है तो इसका अर्थ है कि परिवर्तन अनुमत नहीं हैं। नीचे दिया गया कोड उदाहरण दिखाता है कि इस प्रॉपर्टी को प्रोजेक्ट में कैसे उपयोग किया जाता है:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT
client.read_only = True

CRAM-MD5 प्रमाणीकरण उपयोग करें

उन्नत सुरक्षा के लिए, क्लाइंट को CRAM-MD5 प्रमाणीकरण उपयोग करने के लिए कॉन्फ़िगर करें:

निम्न कोड नमूना दर्शाता है कि क्लाइंट को IMAP सर्वर से जुड़ने के लिए समर्थित प्रमाणीकरण विधियों में से एक के रूप में CRAM-MD5 को कैसे स्वीकार करने के लिए कॉन्फ़िगर किया जाए:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
client.allowed_authentication = ae.clients.imap.ImapKnownAuthenticationType.CRAM_MD5

ऑपरेशन टाइमआउट सेट करें

एक टाइमआउट (मिलीसेकंड में) सेट करके क्लाइंट को अनिश्चितकाल तक प्रतीक्षा करने से रोकें:

निम्नलिखित कोड स्निपेट दर्शाता है कि क्लाइंट को सर्वर प्रतिक्रिया के लिए प्रतीक्षा करने हेतु 60,000 मिलीसेकंड (60 सेकंड) का टाइमआउट अवधि कैसे सेट किया जाए:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)
#  60 seconds
client.timeout = 60000

अभिवादन टाइमआउट सेट करें

कंट्रोल करें कि क्लाइंट मेल सर्वर के साथ प्रारंभिक हैंडशेक के दौरान कितना समय प्रतीक्षा करता है।

निम्नलिखित कोड स्निपेट दर्शाता है कि कैसे greeting_timeout प्रॉपर्टी का उपयोग करके अभिवादन टाइमआउट को प्रतिबंधित किया जाए ImapClient क्लास:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")

client.greeting_timeout = 4000
client.select_folder(ae.clients.imap.ImapFolderInfo.IN_BOX)

IMAP क्लाइंट के साथ TLS उपयोग करें

Aspose.Email सुरक्षित संचार के लिए TLS और SSL का समर्थन करता है। उपयोग करें supported_encryption प्रॉपर्टी जिसका उपयोग स्वीकार्य प्रोटोकॉल संस्करणों को परिभाषित करने के लिए किया जाता है।

ध्यान दें: आप केवल उन प्रोटोकॉल संस्करणों को सेट कर सकते हैं जो .net framework द्वारा समर्थित हैं। यदि कुछ संस्करण आपके वर्तमान .NET framework संस्करण द्वारा समर्थित नहीं हैं, तो उन्हें अनदेखा कर दिया जाएगा और छोड़ दिया जाएगा। यह TLS सुरक्षा स्तर को डाउनग्रेड कर सकता है। इस स्थिति में, अपवाद उत्पन्न नहीं होंगे। यदि आप किसी भी संगतता जांच के बिना प्रोटोकॉल सेट करना चाहते हैं, तो कृपया ‘set_supported_encryption_unsafe(value)’ मेथड का उपयोग करें।

निचे दिया गया कोड उदाहरण दर्शाता है कि TLS 1.3 को कैसे सेट करें ImapClient क्लास इंस्टेंस।

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)

client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS13

यदि निर्दिष्ट एन्क्रिप्शन प्रोटोकॉल वर्तमान .NET Framework संस्करण में समर्थित नहीं है, तो set_supported_encryption_unsafe(value) मेथड और supported_encryption प्रॉपर्टी के व्यवहार में अंतर निम्नलिखित है:

  • यदि supported_encryption प्रॉपर्टी का उपयोग किया जाता है, तो ईमेल क्लाइंट एन्क्रिप्शन प्रोटोकॉल को समर्थित स्तर तक डाउनग्रेड कर देता है।
  • यदि set_supported_encryption_unsafe(value) मेथड का उपयोग किया जाता है, तो ईमेल क्लाइंट अपवाद (exceptions) फेंकेगा।

IMAP सर्वर प्रमाण पत्रों को सत्यापित करें

आगे की कार्रवाई करने से पहले IMAP सर्वर से सुरक्षित कनेक्शन स्थापित करने के लिए, उपयोगकर्ता प्रमाण पत्रों की जाँच और सत्यापन किया जाता है। validate_credentials मेथड का उपयोग ImapClient class यह जांचने में मदद करता है कि दिया गया उपयोगकर्ता नाम और पासवर्ड सही हैं या नहीं। यदि प्रमाण पत्र वैध हैं, तो क्लाइंट IMAP सर्वर के साथ सफलतापूर्वक प्रमाणीकरण कर सकता है। नीचे दिया गया कोड उदाहरण दिखाता है कि इस मेथड को आपके प्रोजेक्ट में कैसे लागू करें:

import aspose.email as ae

with ae.clients.imap.ImapClient("your imap server", 993, "your username", "your password", ae.clients.SecurityOptions.AUTO) as client:
    client.timeout = 4000

    if client.validate_credentials():
        # Further actions

IMAP गतिविधि लॉगिंग सक्षम करें

गतिविधि लॉगिंग में सर्वर कनेक्शन, भेजे और प्राप्त संदेशों के ट्रांसमिशन विवरण, ईमेल प्रोसेसिंग के दौरान होने वाले त्रुटि संदेश, तथा क्लाइंट या सर्वर द्वारा किए गए अन्य सभी कार्यों को रिकॉर्ड करना शामिल है। IMAP क्लाइंट गतिविधि और सर्वर के साथ इंटरैक्शन को ट्रैक करने के लिए, नीचे दिया गया कोड उदाहरण उपयोग करें जिसमें log_file_name प्रॉपर्टी का उपयोग किया गया है। ImapClient वर्ग जो सूचनाओं को निर्दिष्ट लॉग फ़ाइल में लॉग करता है:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)

# Set the path to the log file using the LogFileName property.
client.log_file_name = "C:\\Aspose.Email.IMAP.log"
# Set the UseDateInLogFileName property if it is necessary.
client.use_date_in_log_file_name = False