SMTP सर्वर से कनेक्ट करना
SSL समर्थन वाले SMTP सर्वर से कनेक्ट करते समय निम्नलिखित प्रॉपर्टी सेट करनी आवश्यक हैं।
- SecurityOptions
- पोर्ट
नीचे के उदाहरणों में हम दिखाते हैं कि कैसे:
- उपयोगकर्ता नाम सेट करें।
- पासवर्ड सेट करें।
- पोर्ट सेट करें।
- सुरक्षा विकल्प सेट करें।
निम्नलिखित कोड स्निपेट दर्शाता है कि SSL सक्षम SMTP सर्वर से कैसे जुड़ें।
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
SmtpClient client = new SmtpClient("smtp.gmail.com");
// Set username, password, port, and security options
client.setUsername("your.email@gmail.com");
client.setPassword("your.password");
client.setPort(587);
client.setSecurityOptions(SecurityOptions.SSLExplicit);
Socks प्रॉक्सी सर्वर के माध्यम से सर्वर से कनेक्ट होना
कभी‑कभी हम बाहरी दुनिया से संचार करने के लिए प्रॉक्सी सर्वर का उपयोग करते हैं। ऐसे मामलों में, प्रॉक्सी पता निर्दिष्ट किए बिना मेल क्लाइंट इंटरनेट पर संवाद नहीं कर सकते। Aspose.Email SOCKS प्रॉक्सी प्रोटोकॉल के संस्करण 4, 4a और 5 का समर्थन करता है। यह लेख एक कार्यशील नमूना प्रदान करता है जिसमें प्रॉक्सी मेल सर्वर का उपयोग करके ईमेल भेजना दर्शाया गया है। प्रॉक्सी सर्वर के माध्यम से ईमेल भेजने के लिए:
- प्रॉक्सी को आवश्यक जानकारी के साथ आरंभ करें, अर्थात प्रॉक्सी पता, पोर्ट, और SOCKS संस्करण।
- आरंभ करें SmtpClient होस्ट पता, उपयोगकर्ता नाम और पासवर्ड, तथा अन्य सभी सेटिंग्स के साथ।
- क्लाइंट की Proxy प्रॉपर्टी को सेट करें प्रॉक्सी पहले बनाया गया ऑब्जेक्ट।
निम्नलिखित कोड स्निपेट दर्शाता है कि प्रॉक्सी सर्वर के माध्यम से सर्वर से कैसे जुड़ें।
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
SmtpClient client = new SmtpClient("smtp.domain.com", "username", "password");
client.setSecurityOptions(SecurityOptions.SSLImplicit);
String proxyAddress = "192.168.203.142"; // proxy address
int proxyPort = 1080; // proxy port
SocksProxy proxy = new SocksProxy(proxyAddress, proxyPort, SocksVersion.SocksV5);
client.setProxy(proxy);
client.send(new 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 प्रॉक्सी सर्वर के माध्यम से सर्वर से कनेक्ट होना
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
HttpProxy proxy = new HttpProxy("18.222.124.59", 8080);
try (SmtpClient client = new SmtpClient("host", 587, "username", "password")) {
client.setProxy(proxy);
client.send(new MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy",
"Implement socks proxy protocol for versions 4, 4a, 5 (only Username/Password authentication)"));
}
प्रमाणिकरण तंत्र को अनुकूलित करें
SMTP सर्वर द्वारा समर्थन किए गए प्रमाणिकरण तंत्रों की सूची प्राप्त करें, इसका उपयोग करके getSupportedAuthentication विधि SmtpClient क्लास। यह विधि क्लाइंट को यह निर्धारित करने की अनुमति देती है कि सर्वर के साथ सुरक्षित कनेक्शन स्थापित करने के लिए कौन‑से प्रमाणिकरण विधियां उपलब्ध हैं। फिर, इसका उपयोग करके setAllowedAuthentication विधि जो उपयोगकर्ता द्वारा अनुमत प्रमाणिकरण प्रकारों की एन्ह्यूमरेशन प्राप्त (या सेट) करती है, क्लाइंट‑सर्वर संचार के लिए सबसे उपयुक्त प्रमाणिकरण तंत्र चुनता है। यह आपको मेल क्लाइंट के लिए प्रमाणिकरण विधि स्पष्ट रूप से सेट करने की अनुमति देता है।
निम्नलिखित कोड नमूना दिखाता है कि कैसे ईमेल क्लाइंट प्रमाणिकरण को अनुकूलित किया जा सकता है:
smtpClient.setAllowedAuthentication(SmtpKnownAuthenticationType.Login);
सर्वर से कनेक्ट करने के लिए CRAM-MD5 प्रमाणिकरण का उपयोग
SMTP सर्वर के साथ सुरक्षित प्रमाणिकरण और संचार सुनिश्चित करने के लिए, आप SMTP क्लाइंट के लिए अनुमत प्रमाणिकरण विधि के रूप में CRAM-MD5 का उपयोग निर्दिष्ट और लागू कर सकते हैं। निम्नलिखित कोड स्निपेट दिखाता है कि कैसे अनुमत प्रमाणिकरण प्रकार को कॉन्फ़िगर किया जाए। SmtpClient:
smtpClient.setAllowedAuthentication(SmtpKnownAuthenticationType.CramMD5);
होस्ट पर विशिष्ट IP पते से SMTP क्लाइंट बाइंड करें
होस्ट पर ईमेल भेजने के लिए कई पोर्ट उपलब्ध होने की संभावना को ख़ारिज नहीं किया जा सकता। ऐसे मामलों में, ईमेल भेजने वाले क्लाइंट को होस्ट पर एक विशिष्ट पोर्ट से बाइंड करने की आवश्यकता उत्पन्न हो सकती है। इसे Aspose.Email API का उपयोग करके भी किया जा सकता है। SmtpClient bindIPEndPoint प्रॉपर्टी। API SmtpClient होस्ट पर विशिष्ट IP पता उपयोग करने के लिए इसे विशिष्ट IP एंडपॉइंट निर्दिष्ट करके सेट किया जा सकता है। निम्नलिखित कोड स्निपेट दिखाता है कि कैसे SMTP क्लाइंट को होस्ट पर विशिष्ट IP पते से बाँधें।
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
SmtpClient client = new SmtpClient("smtp.domain.com", // host
587, // port
"username", // username
"password", // password
SecurityOptions.Auto // Security Options
);
try {
client.bindIPEndPoint(new BindIPEndPointHandler() {
public InetSocketAddress invoke(InetSocketAddress remoteEndPoint) {
return new InetSocketAddress(0);
}
});
client.noop();
} finally {
client.dispose();
}
ईमेल न भेजे मेल सर्वर क्रेडेंशियल्स की वैधता
कभी-कभी बिना ईमेल भेजे क्रेडेंशियल्स को सत्यापित करना आवश्यक होता है। Aspose.Email प्रदान करता है validateCredentials() विधि इस ऑपरेशन को करने के लिए। यदि सत्यापन सफल होता है, तो if स्टेटमेंट के अंदर का कोड निष्पादित होता है, आमतौर पर आगे की कार्रवाई या IMAP सर्वर से डेटा प्राप्त करने के लिए उपयोग किया जाता है। निम्नलिखित कोड स्निपेट दिखाता है कि बिना ईमेल भेजे क्रेडेंशियल्स का वैधता कैसे जाँचें।
try (SmtpClient smtpClient = new SmtpClient(
server.SmtpUrl, server.SmtpPort, "username", "password", SecurityOptions.Auto)) {
smtpClient.setTimeout(4000);
if (smtpClient.validateCredentials()) {
// to do something
}
}
मेल ऑपरेशनों के लिए टाइमआउट सेट करने का तरीका
प्रत्येक मेल ऑपरेशन को कई कारकों (नेटवर्क देरी, डेटा आकार, सर्वर प्रदर्शन आदि) के आधार पर कुछ समय लगता है। आप सभी मेल ऑपरेशनों के लिए टाइमआउट सेट कर सकते हैं। नीचे दिया गया कोड उदाहरण दिखाता है कि इसे कैसे किया जाए उपयोग करके टाइमआउट प्रॉपर्टी। नोट: आपको बड़े मान सेट नहीं करने चाहिए ताकि आपके एप्लिकेशन में लंबी प्रतीक्षा न हो।
try (SmtpClient smtpClient = new SmtpClient("host", 587, "username", "password", SecurityOptions.SSLExplicit))
{
smtpClient.setTimeout(60000); // 60 seconds
// some code...
}