पायथन का उपयोग करके ईमेल कैसे भेजें
पायथन कई विशेषताओं वाली एक भाषा है। इसका उपयोग डेटा विश्लेषण, वेब विकास, और बहुत कुछ के लिए किया जा सकता है। बस इतना ही नहीं, पायथन में एक छिपी हुई विशेषता है: आप इसका उपयोग ईमेल भेजने के लिए कर सकते हैं। इसका मतलब है कि आप पासवर्ड रीसेट ईमेल, फॉरगॉट पासवर्ड ईमेल, उपयोगकर्ता सूचनाएं, और जो भी अन्य ईमेल आप भेजना चाहते हैं, उन्हें एक पायथन प्रोग्राम से भेज सकते हैं।
इस गाइड में, हम चर्चा करेंगे कि पायथन का उपयोग करके ईमेल कैसे भेजें। हम ईमेल और smtplib लाइब्रेरीज के माध्यम से चलेंगे, वे कैसे काम करती हैं, और एक ईमेल भेजने के लिए एक उदाहरण प्रोग्राम लिखेंगे।
पायथन का उपयोग करके ईमेल भेजना
जब आप कंप्यूटर प्रोग्राम से एक ईमेल भेजते हैं, तो आपका प्रोग्राम सिंपल मेल ट्रांसफर प्रोटोकॉल (SMTP) नामक एक प्रोटोकॉल का उपयोग करके संदेश भेजेगा। यह प्रोटोकॉल दुनिया भर में ईमेल सेवाओं और क्लाइंट्स द्वारा संदेश भेजने के लिए उपयोग किया जाता है।
कंप्यूटर प्रोग्राम से ईमेल भेजने के लिए, आपको एक SMTP सर्वर की आवश्यकता होगी। आप स्वयं एक सेट अप कर सकते हैं, लेकिन आपको हमेशा ऐसा करने की आवश्यकता नहीं है। जीमेल और आउटलुक जैसी सेवाएं SMTP सेवाएं प्रदान करती हैं ताकि आप अपने मौजूदा ईमेल अकाउंट्स का उपयोग करके ईमेल भेज सकें।
इस गाइड के लिए, हम मान लेंगे कि आप जीमेल के SMTP सर्वर से ईमेल भेज रहे हैं। आप उनके SMTP सर्वर के बारे में जीमेल के आधिकारिक दस्तावेज में अधिक जान सकते हैं। यह पता लगाने के लिए कि क्या आपका ईमेल प्रदाता SMTP का समर्थन करता है, '[आपके प्रदाता का नाम] SMTP क्रेडेंशियल्स' के लिए ऑनलाइन खोजें।
हमारे पास ईमेल भेजने के लिए तीन चरण हैं:
- अपना SMTP कनेक्शन कॉन्फ़िगर करें
- एक मैसेज ऑब्जेक्ट बनाएं
- SMTP पर संदेश भेजें
SMTP कनेक्शन कॉन्फ़िगर करना
शुरू करने के लिए, आइए अपना SMTP कनेक्शन सेट करें। हम इसे smtplib नामक एक लाइब्रेरी का उपयोग करके कर सकते हैं जो कनेक्शन को प्रबंधित करने के लिए आवश्यक सभी कोड प्रदान करती है। इस लाइब्रेरी की बदौलत ईमेल भेजने में केवल कुछ लाइनों का कोड लगता है।
smtplib लाइब्रेरी को अपने कोड में आयात करके शुरू करें:
import smtplib
अब हमें वेरिएबल्स सेट करने होंगे जो हमारे SMTP सर्वर के लिए क्रेडेंशियल्स स्टोर करते हैं। इन मानों को वेरिएबल्स में स्टोर करने से हमारे कोड की पठनीयता बनाए रखने में मदद मिलेगी। यहाँ वे वेरिएबल्स हैं जिनका हम उपयोग करने जा रहे हैं:
sender = 'test@careerkarma.com' password = '123456' server = 'smtp.gmail.com' port = 465
इस कोड में वह सभी कॉन्फ़िगरेशन है जो हमें SMTP कनेक्शन बनाने के लिए चाहिए। अब जब हमारे पास यह सेट अप है, तो हम अपने SMTP सर्वर में लॉग इन कर सकते हैं:
server = smtplib.SMTP_SSL(server, port) server.login(sender, password)
हमारा कोड हमारे SMTP सर्वर के लिए एक SSL कनेक्शन बनाता है। इसका मतलब है कि हम अपने सर्वर से कनेक्ट करने के लिए सिक्योर सॉकेट लेयर (SSL) का उपयोग कर रहे हैं। SSL एक पारंपरिक कनेक्शन की तुलना में अधिक सुरक्षित है और परिणामस्वरूप यह SMTP सर्वर्स पर एक मानक बन गया है।
हमारा SMTP कनेक्शन अब कॉन्फ़िगर हो गया है!
एक मैसेज ऑब्जेक्ट बनाएं
हमारा कोड अभी बहुत कुछ नहीं करता है: यह निश्चित रूप से ईमेल नहीं भेजता है। ऐसा इसलिए है क्योंकि हमने अभी तक एक मैसेज ऑब्जेक्ट नहीं बनाया है। आइए ईमेल लाइब्रेरी का उपयोग करके ऐसा करें। जबकि आप मैसेज ऑब्जेक्ट बनाने के लिए smtplib का उपयोग कर सकते हैं, ईमेल लाइब्रेरी अधिक संक्षिप्त है।
आइए आवश्यक ईमेल पैकेज आयात करके शुरू करें:
from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText
इन लाइब्रेरीज के आयात होने के साथ, हम अपना मैसेज ऑब्जेक्ट बना सकते हैं:
message = MIMEMultipart() body = 'This is an email sent from Python!' message['From'] = sender message['To'] = 'test@careerkarma.com' message['Subject'] = 'This is a test email' message.attach(MIMEText(body, 'plain'))
हमने 'message' नामक एक ऑब्जेक्ट इनिशियलाइज़ करके शुरू किया है। यह ऑब्जेक्ट ईमेल लाइब्रेरी से MIMEMultipart क्लास को संदर्भित करता है। हमने तब अपने ईमेल का बॉडी और प्रेषक, प्राप्तकर्ता, और विषय निर्दिष्ट किया।
हमारे कोड की अंतिम लाइन हमारे मैसेज के बॉडी को हमारे ईमेल से अटैच करती है।
संदेश भेजें
अब बस इतना करना बाकी है कि हम अपना संदेश भेजें:
server.send_message(message)
जब हम अपना सारा कोड एक साथ चलाते हैं, तो एक ईमेल भेजा जाता है! 'This is a test email' शीर्षक वाला एक ईमेल test@careerkarma.com से test@careerkarma.com पर भेजा जाता है।
फ़ाइल से टेम्पलेट पढ़ना
हमारे ईमेल का बॉडी केवल एक लाइन लंबा है। इसका मतलब है कि हमारे लिए पायथन के अंदर अपना ईमेल बॉडी लिखना अधिक व्यावहारिक है। अधिकांश ईमेल इससे लंबे होते हैं, इसलिए एक टेम्पलेट बनाना बेहतर है जो किसी विशेष ईमेल के लिए टेक्स्ट स्टोर करता है।
हम email.txt नामक एक फ़ाइल बनाकर शुरू करेंगे और निम्नलिखित सामग्री पेस्ट करेंगे:
Hello ${NAME},
This is a test email!
Thanks,
Career Karma
इस टेम्पलेट में "NAME" नामक एक वेरिएबल है, जो कर्ली ब्रेसेस ({}) के भीतर संलग्न है और एक डॉलर साइन ($) से पहले है। इस वेरिएबल को बाद में हमारे कोड में प्राप्तकर्ता के नाम से प्रतिस्थापित किया जाएगा।
अब हमें इस टेम्पलेट को अपने कोड में पढ़ना होगा। हम read_email नामक एक क्लास बनाकर ऐसा कर सकते हैं जो हमारी फ़ाइल पढ़ने के लिए open() मेथड का उपयोग करता है।
हम स्ट्रिंग लाइब्रेरी से Template ऑब्जेक्ट आयात करेंगे। हम इस ऑब्जेक्ट का उपयोग एक ऐसा ऑब्जेक्ट बनाने के लिए करेंगे जिसे हमारे ईमेल द्वारा पढ़ा जा सके। अपने पायथन प्रोग्राम के शीर्ष पर कोड की निम्नलिखित लाइन पेस्ट करें:
from string import Template
अपने सभी आयात स्टेटमेंट्स के नीचे, इस कोड को पेस्ट करें:
def read_email():
with open('email.txt', 'r') as file:
contents = file.read()
return Template(contents)
यह फंक्शन "email.txt" नामक फ़ाइल को "contents" वेरिएबल में पढ़ेगा। इसका मान तब "स्ट्रिंग" लाइब्रेरी से Template मेथड का उपयोग करके एक Template ऑब्जेक्ट में बदल दिया जाता है। फ़ाइलें पढ़ने के बारे में अधिक जानने के लिए हमारा पायथन रीड फ़ाइल ट्यूटोरियल पढ़ें।
अपने प्रोग्राम में कोड की निम्नलिखित लाइन बदलें:
body = 'This is an email sent from Python!'
इस कोड का उपयोग करने के लिए:
email_content = read_email() body = email_content.substitute(NAME="Test")
यह कोड हमारे कोड में read_email() फंक्शन को कॉल करता है "email.txt" फ़ाइल की सामग्री पढ़ने के लिए। फिर, हमारे ईमेल टेम्पलेट के अंदर NAME का मान "Test" मान से प्रतिस्थापित किया जाता है। साथ में, हमारा कोड इस तरह दिखता है:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from string import Template
def read_email():
with open('email.txt', 'r') as file:
contents = file.read()
return Template(contents)
sender = 'test@careerkarma.com'
password = '123456'
server = 'smtp.gmail.com'
port = 465
server = smtplib.SMTP_SSL(server, port)
server.login(sender, password)
message = MIMEMultipart()
email_content = read_email()
body = email_content.substitute(NAME="Test")
message['From'] = sender
message['To'] = 'test@careerkarma.com'
message['Subject'] = 'This is a test email'
message.attach(MIMEText(body, 'plain'))
server.send_message(message)
जब आप इस प्रोग्राम को चलाते हैं, अपने SMTP सर्वर क्रेडेंशियल्स को प्रतिस्थापित करते हुए, एक ईमेल भेजा जाएगा। आपने अभी एक प्रोग्राम लिखा है जो ईमेल भेजता है।
निष्कर्ष
पायथन में ईमेल भेजना कठिन नहीं है। टेम्पलेट के उपयोग के बिना, ईमेल भेजने में केवल कुछ लाइनों का कोड लगता है। ईमेल और smtplib मॉड्यूल अधिकांश भारी काम करते हैं। उस ने कहा, आप अपने ईमेल के लिए टेम्पलेट बनाने के लिए ईमेल मॉड्यूल का अधिक व्यापक रूप से उपयोग कर सकते हैं जो मानों को प्रतिस्थापित कर सकते हैं।
क्या आप एक चुनौती के लिए तैयार हैं? ऊपर के प्रोग्राम को कई प्राप्तकर्ताओं को ईमेल भेजने के लिए समर्थन करने के लिए बदलें। संकेत: आप इन ईमेल को भेजने के लिए एक फॉर लूप का उपयोग करना चाहेंगे।
अब आप एक विशेषज्ञ की तरह पायथन में ईमेल भेजना शुरू करने के लिए तैयार हैं!