प्रमाणीकरण और कई अन्य उद्देश्यों के लिए कार्यक्रमों का उपयोग करके आपको अक्सर कई खातों में ईमेल भेजने की आवश्यकता हो सकती है।
एसएमटीपी प्रोटोकॉल मानकों को परिभाषित करता है जो मेल सर्वर और मेल ट्रांसफर एजेंटों में ईमेल संचार की अनुमति देता है, जबकि आईएमएपी प्रोटोकॉल ईमेल प्राप्त करने के लिए है।
गो नेट/एसएमटीपी पैकेज में RFC द्वारा परिभाषित ईमेल-संबंधित गतिविधियों के लिए कार्यक्षमता प्रदान करता है, जिसमें 8BITMIME, AUTH और STARTTLS एक्सटेंशन भी शामिल हैं।
इस परियोजना में प्रयुक्त कोड a. में उपलब्ध है गिटहब रिपोजिटरी और आपके लिए एमआईटी लाइसेंस के तहत उपयोग करने के लिए स्वतंत्र है।
नेट/एसएमटीपी पैकेज का उपयोग करके गो में ईमेल कैसे भेजें
नेट/एसएमटीपी पैकेज गो मानक पुस्तकालय का हिस्सा है, इसलिए आपको कोई बाहरी पैकेज स्थापित करने की आवश्यकता नहीं है। उपयोग करने से पहले आपको केवल पैकेज को आयात करना होगा।
आयात (
"नेट/एसएमटीपी"
"लकड़ी का लट्ठा"
"क्रिप्टो/टीएलएस"
"एफएमटी"
)
आपको आयात करने की भी आवश्यकता होगी लकड़ी का लट्ठा कंसोल में त्रुटियों को लॉग करने के लिए पैकेज और क्रिप्टो/टीएलएस एक सुरक्षित कनेक्शन को कॉन्फ़िगर करने के लिए पैकेज।
एक बार जब आप नेट/एसएमटीपी पैकेज आयात कर लेते हैं, तो आपको एक लिखना चाहिए मेल भेजे() मेल भेजने के लिए फ़ंक्शन और फिर फ़ंक्शन को मुख्य फ़ंक्शन में कॉल करें।
समारोहमुख्य() {
एफएमटी प्रिंट (भेजें मेल ())
}
समारोहमेल भेजे()डोरी {
// यहां कोड जोड़ें
}
मेल भेजे() फ़ंक्शन में वह कोड होगा जो प्राप्तकर्ताओं को मेल भेजता है।
ईमेल भेजना कैसे काम करता है
SMTP प्रोटोकॉल उन मापदंडों को परिभाषित करता है जो प्रत्येक मेल के लिए आवश्यक हैं। ये पैरामीटर प्रेषक और रिसीवर मेल पते, एक पोर्ट जिस पर मेल भेजा जाता है, एक होस्ट सर्वर और एक संदेश है।
ईमेल भेजने के लिए ऊपर बताए गए पैरामीटर महत्वपूर्ण हैं।
इस ट्यूटोरियल में, आप Yahoo ईमेल भेजना सीखेंगे। हालाँकि, आपके द्वारा उपयोग किए जाने वाले मेल सर्वर प्रदाता (MSP) के लिए प्रक्रिया समान है।
चूंकि आप Yahoo मेल का उपयोग कर रहे हैं, इसलिए अपने में लॉग इन करें याहू मेल खाता, आगे बढ़ो खाता जानकारी, और क्लिक करें खाते की सुरक्षा टैब। फिर एक ऐप पासवर्ड जेनरेट करें। आपको ऐप को नाम देना होगा, और फिर याहू मेल ऐप के लिए एक पासवर्ड बनाएगा, और आप अपने मेल पते के साथ अपने कोड में पासवर्ड का उपयोग कर सकते हैं।
में मेल भेजे() समारोह, आप तीन चर घोषित करेंगे; एक वेरिएबल जो आपके ईमेल की स्ट्रिंग रखता है, एक जिसमें आपका ईमेल पासवर्ड होता है, और एक स्ट्रिंग जिसमें वह ईमेल पता होता है जिसे आप संदेश भेज रहे हैं।
से := "[email protected]"
पासवर्ड: = "एक सुरक्षित पासवर्ड यहाँ"
to:= "[email protected]"
आप एक स्लाइस का उपयोग कर सकते हैं और तत्वों के माध्यम से लूप यदि आप उन्हें एकाधिक प्राप्तकर्ताओं को भेजने का इरादा रखते हैं।
ईमेल होस्ट और पोर्ट प्राप्त करना और सेट करना
SMTP प्रोटोकॉल ईमेल स्रोत की पहचान करने के लिए होस्ट और पोर्ट नंबर का उपयोग करता है। यहीं से आपका एमएसपी आता है। आपको अपने एमएसपी का उपयोग करने की अनुमति देने वाले होस्ट और पोर्ट नंबर को जानना होगा।
एमएसपी मेजबानों की सूची के लिए इस संसाधन की जांच करें और पोर्ट नंबर यदि आप Gmail, Yahoo, या Outlook जैसे सार्वजनिक ईमेल का उपयोग करते हैं। Google ने Gmail के लिए "कम सुरक्षित ऐप्स" को बंद कर दिया है; यदि आप Gmail का उपयोग कर रहे हैं, तो हो सकता है कि आप अपने एप्लिकेशन को सुरक्षित करना चाहें।
एक बार जब आपको पोर्ट नंबर और होस्ट पता मिल जाए, तो उन्हें इस तरह से वेरिएबल में असाइन करें:
होस्ट: = "smtp.mail.yahoo.com"
पोर्ट: = "465"
ऊपर दिए गए होस्ट और पोर्ट नंबर नियमित खातों पर उपयोग के लिए Yahoo मेल से हैं। सर्वर smtp.mail.yahoo.com पर होस्ट किया गया है, और आपको पोर्ट का उपयोग करने की अनुमति है 465 ईमेल भेजने के लिए।
ईमेल की सामग्री की घोषणा
अगला कदम मेल की सामग्री को चर के रूप में घोषित करना है। विषय और शरीर संदेश बनाते हैं।
विषय: = "अरे, आई एम जस्ट चेकिंग ऑन यू।"
शरीर: = "आशा है कि आप ठीक कर रहे हैं! आज आप कैसे हैं। "
विषय चर ईमेल का विषय है; तन वेरिएबल आपके द्वारा भेजे जा रहे ईमेल का मुख्य भाग है।
ईमेल हेडर सेट करना
ईमेल के हेडर को दर्शाने के लिए आपको स्ट्रिंग्स का नक्शा बनाना होगा।
हेडर := बनाना(नक्शा[डोरी]डोरी)
हेडर ["प्रेषक"] = से
हेडर ["टू"] = टू
शीर्षलेख ["विषय"] = विषय
संदेश: = ""
के लिये कश्मीर, वी:= सीमा शीर्षलेख {
संदेश += fmt. स्प्रिंटफ ("%s: %s\r", k, v)
}
संदेश + = "\ r" + बॉडी
सबसे पहले, आप स्ट्रिंग कुंजियों और मानों का नक्शा बनाते हैं और ऊपर दिखाए गए अनुसार अपने पते, प्राप्तकर्ता का पता और विषय के शीर्षलेख सेट करते हैं। पर लूप के लिए श्रेणी का उपयोग करना हेडर नक्शा, एक संदेश वेरिएबल को स्ट्रिंग स्वरूपण का उपयोग करके हेडर और संदेश शामिल करने के लिए घोषित किया गया है।
ईमेल को प्रमाणित करना
स्रोत को सत्यापित करने के लिए ईमेल को प्रमाणीकरण की आवश्यकता है। smtp पैकेज का उपयोग करके ईमेल प्रमाणीकरण के लिए कार्यक्षमता प्रदान करता है सादा प्रामाणिक। प्लेनऑथ विधि पहचान, प्रेषक के ईमेल, पासवर्ड और होस्ट को पैरामीटर के रूप में लेती है और एक लौटाती है प्रमाणीकरण वह वस्तु जिसका उपयोग आप ईमेल भेजने के लिए करेंगे।
प्रमाणित करें: = smtp. प्लेनएथ ("", पासवर्ड, होस्ट से)
पहचान आपका उपयोगकर्ता नाम है, जिसे खाली छोड़ा जा सकता है, जैसा कि इस मामले में देखा गया है।
ईमेल के लिए एक कनेक्शन बनाना
कुछ मेल सेवा प्रदाताओं के लिए आपको एक कनेक्शन के माध्यम से ईमेल भेजने की आवश्यकता होती है। इस लेख में, हम एक बना रहे हैं टीसीपी कनेक्शन सर्वर पर TLS कॉन्फ़िगरेशन के साथ।
tlsConfig := &tls. कॉन्फिग{
InsecureSkipसत्यापित करें: सच,
सर्वर का नाम: होस्ट,
}
ऊपर दिए गए कोड में, आपने इसका संदर्भ देकर एक TLS कॉन्फ़िगरेशन बनाया है कॉन्फ़िग संरचना जहां असुरक्षितछोड़ेंसत्यापित करें पर सेट किया गया था सच, और सर्वर नाम को असाइन किया गया था मेज़बान चर।
आपको इसका उपयोग करके एक टीसीपी कनेक्शन बनाना होगा डायल की विधि टीएलएस पैकेट। डायल विधि कनेक्शन प्रकार (टीसीपी) में लेती है, इस मामले में, सर्वर पता और टीएलएस कनेक्शन कॉन्फ़िगरेशन।
कनेक्शन, त्रुटि: = tls. डायल ("टीसीपी", सर्वरएड्रेस, टीएलएसकॉन्फिग) गलती!= शून्य {
लकड़ी का लट्ठा। दहशत (गलती)
}
उपरोक्त कोड में, आपने एक टीसीपी कनेक्शन बनाया और त्रुटियों को संभाला; आपने का उपयोग करके एक नया smtp पैकेज इंस्टेंट किया होगा नया ग्राहक की विधि नेट/एसएमटीपी पैकेट। नया ग्राहक विधि क्रमशः एक कनेक्शन और होस्ट में लेती है।
smtpClient, त्रुटि: = smtp. न्यू क्लाइंट (कनेक्शन, होस्ट)
यदि गलती!= शून्य {
लकड़ी का लट्ठा। दहशत (गलती)
}
अब जब आपने एक बना लिया है एसएमटीपी क्लाइंट इंस्टेंस, आपको के पैरामीटर सेट करने होंगे एसएमटीपी क्लाइंट और त्रुटियों को संभालें।
यदि गलती = smtpClient. प्रामाणिक (प्रमाणित); गलती!= शून्य {
लकड़ी का लट्ठा। दहशत (गलती)
}
यदि गलती = smtpClient. मेल प्रेषक); गलती!= शून्य {
लकड़ी का लट्ठा। दहशत (गलती)
}
यदि गलती = smtpClient. आरसीपीटी (हेडर ["टू"]); गलती!= शून्य {
लकड़ी का लट्ठा। दहशत (गलती)
}
ऊपर दिए गए उदाहरण में, आपने प्रमाणीकरण, प्रेषक के पते और प्राप्तकर्ता के पते के मापदंडों को उनके संबंधित तरीकों और संभाली हुई त्रुटियों के लिए पारित किया है।
अंत में, आपको कनेक्शन इंस्टेंस पर लिखना होगा, और आप इसका उपयोग करके एक लेखक बनाकर ऐसा कर सकते हैं जानकारी आप का तरीका एसएमटीपी क्लाइंट उदाहरण।
लेखक, त्रुटि: = smtpClient. जानकारी()
यदि गलती!= शून्य {
लकड़ी का लट्ठा। दहशत (गलती)
}
_, गलती = लेखक। लिखना([]बाइट(संदेश))
यदि गलती!= शून्य {
लकड़ी का लट्ठा। दहशत (गलती)
}
एक लेखक बनाने के बाद, आप संदेश का एक बाइट स्लाइस का उपयोग करके लिखते हैं लिखना ऊपर के उदाहरण के रूप में विधि।
गलती = लेखक। बंद करना()
यदि गलती!= शून्य {
लकड़ी का लट्ठा। दहशत (गलती)
}
गलती = smtpClient. छोड़ना()
यदि गलती!= शून्य {
वापसी
}
वापसी "सफल, मेल भेजा गया!"
लेखक को बंद करें और उपरोक्त कोड का उपयोग करके smtp क्लाइंट कनेक्शन इंस्टेंस को छोड़ दें। मेल भेजे() फ़ंक्शन एक सफलता संदेश देता है, जैसा कि ऊपर दिखाया गया है।
कॉल करने पर मेल भेजे() में समारोह मुख्य फ़ंक्शन, आपको सफलता संदेश अपने कंसोल पर लॉग इन करना चाहिए, और ईमेल आपके प्राप्तकर्ता को भेजा जाना चाहिए।
नेट पैकेज में और भी बहुत कुछ है
नेट पैकेज में नेटवर्क से संबंधित कार्यात्मकताओं के लिए कई पैकेज हैं और एसएमटीपी पैकेज उनमें से सिर्फ एक है। आप नेटवर्किंग से संबंधित विकास के लिए टीसीपी और एचटीटीपी पैकेज का भी उपयोग कर सकते हैं।
यदि आप बैकएंड डेवलपर नहीं हैं तो आपको नेट/एसएमटीपी पैकेज भारी लग सकता है। कोड की कम पंक्तियों के साथ जल्दी से ईमेल भेजने के लिए कई अन्य विकल्प हैं। आप SendGrid, Twilio, और MailChimp जैसी ईमेल मार्केटिंग कंपनियों और सबस्टैक और रिव्यू जैसी न्यूज़लेटर सेवाओं की जांच कर सकते हैं जो आपको बिना तनाव के कई उपयोगकर्ताओं को ईमेल भेजने की अनुमति देती हैं।