SMTP सर्वर से कनेक्ट करें
SSL के साथ SMTP सर्वर से कनेक्ट करें
SSL को समर्थन करने वाले SMTP सर्वर के साथ सुरक्षित कनेक्शन स्थापित करने के लिए, आपको निम्नलिखित मुख्य गुणों को कॉन्फ़िगर करना होगा। SmtpClient क्लास:
-
होस्ट: SMTP सर्वर का पता (उदाहरण के लिए, smtp.gmail.com).
-
पोर्ट: SSL-सक्षम संचार के लिए उपयोग किया जाने वाला पोर्ट (आमतौर पर implicit SSL के लिए 465 या explicit SSL/TLS के लिए 587).
-
उपयोगकर्ता नाम: प्रमाणीकरण के लिए उपयोग किया गया खाता नाम
-
पासवर्ड: SMTP खाते का पासवर्ड
-
सुरक्षा विकल्प: उपयोग किए जाने वाले एन्क्रिप्शन का प्रकार (SSLEXPLICIT, SSLIMPLICIT, आदि).
निम्नलिखित कोड उदाहरण दिखाता है कि SSL-सक्षम SMTP सर्वर को कैसे कॉन्फ़िगर और कनेक्ट करें:
सर्वर से अभिवादन प्रतिक्रिया के लिए टाइमआउट सेट करें
SMTP सर्वर के साथ कनेक्शन स्थापित करते समय, सर्वर सामान्यतः सफल कनेक्शन के बाद एक अभिवादन स्ट्रिंग भेजता है। यह प्रतिक्रिया पुष्टि करती है कि सर्वर संचार जारी रखने के लिए तैयार है।
कुछ परिस्थितियों में, ईमेल क्लाइंट स्वचालित कनेक्शन मोड में कार्य करते हैं, सफल कनेक्शन स्थापित करने के लिए सुरक्षा प्रोटोकॉल और पोर्ट के कई संयोजनों (जैसे implicit SSL या STARTTLS) को आज़माते हैं। यदि क्लाइंट का कॉन्फ़िगरेशन सर्वर द्वारा अपेक्षित सुरक्षा मोड से मेल नहीं खाता, तो सर्वर अभिवादन स्ट्रिंग नहीं भेजेगा। यह असंगतता क्लाइंट को अगली संयोजना आज़माने से पहले सामान्य टाइमआउट समाप्त होने तक प्रतीक्षा कराती है — जिससे कनेक्शन धीमा हो जाता है।
इस व्यवहार को बेहतर बनाने के लिए, Aspose.Email प्रदान करता है greeting_timeout प्रॉपर्टी में SmtpClient क्लास। यह प्रॉपर्टी सर्वर अभिवादन स्ट्रिंग की प्रतीक्षा के लिए विशिष्ट टाइमआउट (मिलीसेकंड में) सेट करती है। यदि निर्दिष्ट अंतराल में अभिवादन नहीं मिलता है, तो क्लाइंट तुरंत अगला कॉन्फ़िगरेशन आज़माता है — जिससे स्वचालित कनेक्शन प्रक्रियाएँ काफी तेज़ हो जाती हैं।
निम्नलिखित कोड उदाहरण दिखाता है कि प्रॉपर्टी को प्रोजेक्ट में कैसे लागू किया जाए:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("localhost", 25, "username", "password")
client.greeting_timeout = 4000
SOCKS प्रॉक्सी का उपयोग करके SMTP के माध्यम से ईमेल भेजें
Aspose.Email SOCKS प्रॉक्सी प्रोटोकॉल के संस्करण 4, 4a और 5 का समर्थन प्रदान करता है। निम्नलिखित कोड उदाहरण दिखाता है कि SOCKS प्रॉक्सी के साथ SMTP का उपयोग करके ईमेल कैसे भेजा जाए:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("smtp.domain.com", "username", "password")
client.security_options = ae.clients.SecurityOptions.SSL_IMPLICIT
# proxy address
proxy_address = "192.168.203.142"
#proxy port
proxy_port = 1080
socks_proxy = ae.clients.SocksProxy(proxy_address, proxy_port, ae.clients.SocksVersion.SOCKS_V5)
client.proxy = socks_proxy
client.send(ae.MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Implement socks proxy protocol for versions 4, 4a, 5 (only Username/Password authentication)"))
HTTP प्रॉक्सी का उपयोग करके SMTP के माध्यम से ईमेल भेजें
निम्नलिखित कोड उदाहरण दिखाता है कि SMTP सर्वर के माध्यम से ईमेल भेजने के लिए HTTP प्रॉक्सी का उपयोग कैसे किया जाता है:
import aspose.email as ae
http_proxy = ae.clients.HttpProxy("18.222.124.59", 8080)
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password")
client.proxy = http_proxy
client.send(ae.MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Body"))
Python में समर्थित SMTP प्रमाणीकरण विधियों का चयन करें
SMTP सर्वर से सुरक्षित और संगत कनेक्शन सुनिश्चित करने के लिए, दोनों क्लाइंट और सर्वर द्वारा समर्थित प्रमाणीकरण विधि का उपयोग करना महत्वपूर्ण है। Aspose.Email for Python via .NET अंतर्निहित प्रॉपर्टीज़ इसे प्रबंधित करने के लिए:
-
supported_authentication— SMTP सर्वर द्वारा समर्थित प्रमाणीकरण विधियों की सूची प्राप्त करता है। -
allowed_authentication— वह प्रमाणीकरण विधियां प्राप्त या सेट करता है जिन्हें क्लाइंट उपयोग कर सकता है।
इन गुणों का उपयोग करके, डेवलपर्स क्लाइंट की क्षमताओं को सर्वर की आवश्यकताओं के साथ संरेखित कर सकते हैं और कनेक्शन प्रक्रिया के दौरान प्रमाणीकरण विफलताओं से बच सकते हैं।
निम्नलिखित कोड स्निपेट दिखाता है कि अनुमति प्राप्त SMTP प्रमाणीकरण विधि को कैसे निर्दिष्ट किया जाए, उपयोग करते हुए allowed_authentication गुण:
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.LOGIN
SMTP सर्वर टाइमआउट सेट करें
नेटवर्क पर ईमेल भेजते समय, उचित टाइमआउट सेट करना आवश्यक है ताकि सर्वर उत्तर न देने पर आपका अनुप्रयोग फँसे नहीं। timeout की प्रॉपर्टी SmtpClient Aspose.Email for Python via .NET की क्लास आपको सर्वर प्रतिक्रियाओं के लिए अधिकतम प्रतीक्षा समय (मिलीसेकंड में) परिभाषित करने की सुविधा देती है।
यह गुण ऐसी प्रक्रियाओं पर लागू होता है जैसे कनेक्शन स्थापित करना या SMTP कमांड भेजना। यदि सर्वर निर्दिष्ट अवधि में उत्तर नहीं देता है, तो क्लाइंट एक टाइमआउट अपवाद फेंकता है, जिससे आप अनुत्तरदायी सर्वरों को अधिक प्रभावी ढंग से संभाल सकें।
सर्वर प्रतिक्रिया के टाइमआउट को सेट करने के लिए निम्नलिखित कोड स्निपेट का उपयोग करें:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
# 60 seconds
client.timeout = 60000
सुरक्षित SMTP कनेक्शन के लिए TLS एन्क्रिप्शन सक्षम करें
Aspose.Email SSL और TLS क्रिप्टोग्राफिक प्रोटोकॉल का उपयोग करके SMTP सर्वरों के साथ सुरक्षित संचार का समर्थन करता है। ये प्रोटोकॉल आपके अनुप्रयोग और मेल सर्वर के बीच विनिमय किए जाने वाले डेटा को सुरक्षित रखते हैं, जिससे ट्रांसमिशन के दौरान गोपनीयता और पूर्णता सुनिश्चित होती है।
NOTE: Only versions of SSL/TLS supported by your current Python framework can be applied. Unsupported protocol versions will be silently ignored without raising exceptions. If you need to bypass compatibility checks and explicitly set the encryption protocols, use the `set_supported_encryption_unsafe(value)` method of the [SmtpClient](https://reference.aspose.com/email/python-net/aspose.email.clients.smtp/smtpclient/#smtpclient-class) class.
निम्नलिखित कोड उदाहरण दिखाता है कि SMTP संचार के लिए TLS 1.3 कैसे सेट किया जाए:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS13
प्रमाणीकरण के लिए CRAM-MD5 तंत्र का उपयोग
Aspose.Email for Python via .NET CRAM-MD5 प्रमाणीकरण तंत्र का समर्थन करता है, जो SMTP प्रमाणीकरण के दौरान साधारण टेक्स्ट पासवर्ड के भेजे जाने से बचकर सुरक्षा को बढ़ाता है। यह विधि विशेष रूप से उन सर्वरों से कनेक्ट करते समय उपयोगी है जिन्हें चुनौती-प्रतिक्रिया (challenge-response) प्रमाणीकरण की आवश्यकता होती है।
CRAM-MD5 प्रमाणीकरण सक्षम करने के लिए, सेट करें। allowed_authentication की प्रॉपर्टी SmtpClient क्लास को CRAM_MD5 पर सेट करें, जैसा कि निम्नलिखित कोड उदाहरण में दिखाया गया है:
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.CRAM_MD5