पायथन की स्टैंडर्ड लाइब्रेरी में 'smtplib' मॉड्यूल एक SMTP क्लाइंट सेशन ऑब्जेक्ट को परिभाषित करता है जिसका उपयोग पायथन प्रोग्राम के माध्यम से मेल भेजने के लिए किया जा सकता है।
एक मेल सर्वर एक एप्लिकेशन है जो इंटरनेट पर ई-मेल को हैंडल और डिलीवर करता है। आउटगोइंग मेल सर्वर SMTP (सिंपल मेल ट्रांसफर प्रोटोकॉल) सर्वर लागू करते हैं, जो ईमेल ट्रांसमिशन के लिए एक इंटरनेट मानक है।
इनकमिंग मेल सर्वर दो मुख्य प्रकार के होते हैं। POP3 (पोस्ट ऑफिस प्रोटोकॉल) और IMAP (इंटरनेट मैसेज एक्सेस प्रोटोकॉल)।
smtplib.SMTP() फ़ंक्शन
यह फ़ंक्शन SMTP क्लास का एक ऑब्जेक्ट लौटाता है। यह SMTP या ESMTP सर्वर से कनेक्शन को एनकैप्सुलेट और मैनेज करता है। इस फ़ंक्शन के सिग्नेचर में निम्न तर्क परिभाषित हैं:
| host | एक स्ट्रिंग जो कनेक्ट करने के लिए रिमोट होस्ट का नाम है। |
| port | एक नंबर जो कनेक्ट करने के लिए पोर्ट को निर्दिष्ट करता है। डिफ़ॉल्ट रूप से, smtplib.SMTP_PORT उपयोग किया जाता है। |
| local_hostname | HELO/EHLO कमांड में लोकल होस्ट के FQDN के रूप में उपयोग किया जाता है। |
| source_address | एक 2-टपल (होस्ट, पोर्ट) ऑब्जेक्ट जिससे सॉकेट बाइंड होता है। |
इसमें SMTP ऑपरेशन्स को सपोर्ट करने वाले निम्न मेथड्स हैं:
connect() - यह मेथड दिए गए पोर्ट पर होस्ट से कनेक्शन स्थापित करता है।
login() - यह फ़ंक्शन SMTP सर्वर में लॉगिन करने के लिए यूजरनेम और पासवर्ड तर्क लेता है।
quit() - यह फ़ंक्शन SMTP सेशन को समाप्त करता है।
data() - इस फ़ंक्शन का 'message' तर्क सर्वर को भेजा जाता है।
docmd() - यह फ़ंक्शन एक कमांड भेजता है और उसका रिस्पॉन्स कोड लौटाता है।
ehlo() - यह फ़ंक्शन सर्वर की पहचान करता है।
starttls() - यह फ़ंक्शन TLS मोड शुरू करता है।
getreply() - यह फ़ंक्शन सर्वर से रिप्लाई को रिस्पॉन्स कोड के रूप में प्राप्त करता है।
putcmd() - यह फ़ंक्शन सर्वर को एक कमांड भेजता है।
send_message() - यह फ़ंक्शन मैसेज को बाइट स्ट्रिंग में बदलता है और मेल भेजने के लिए पास करता है।
sendmail() - यह कमांड संपूर्ण मेल ट्रांजैक्शन करता है।
तर्क हैं:
| from_addr | इस मेल को भेजने वाला एड्रेस। |
| to_addrs | इस मेल को भेजने के लिए एड्रेस की सूची। |
| msg | भेजा जाने वाला मैसेज। |
नीचे दिया गया कोड ईमेल भेजने के लिए Gmail के SMTP सर्वर का उपयोग करता है। SMTP ऑब्जेक्ट Gmail के SMTP सर्वर का उपयोग पोर्ट 587 पर करता है। ehlo() कमांड सर्वर की पहचान करता है। हम आउटगोइंग मेल मैसेज के लिए ट्रांसपोर्ट लेयर सिक्योरिटी भी सक्रिय करते हैं।
इसके बाद, login() कमांड को क्रेडेंशियल्स को तर्क के रूप में पास करके आमंत्रित किया जाता है। अंत में, मेल मैसेज को निर्धारित फॉर्मेट में एक हेडर संलग्न करके असेंबल किया जाता है और sendmail() मेथड का उपयोग करके भेजा जाता है। SMTP ऑब्जेक्ट को बाद में बंद कर दिया जाता है।
import smtplib
content = "Hello World"
mail = smtplib.SMTP('smtp.gmail.com', 587)
mail.ehlo()
mail.starttls()
sender = 'pythonanytime@gmail.com'
recipient = 'mlathkar@gmail.com'
mail.login('pythonanytime@gmail.com', 'm15v5l61')
header = 'To:' + recipient + '\n' + 'From:' + sender + '\n' + 'subject:testmail\n'
content = header + content
mail.sendmail(sender, recipient, content)
mail.close()
उपरोक्त स्क्रिप्ट चलाने से पहले, सुनिश्चित करें कि सेंडर के Gmail अकाउंट को 'कम सुरक्षित ऐप्स' तक पहुंच प्रदान की गई है।
https://myaccount.google.com/lesssecureapps
दिखाए गए टॉगल बटन को ON पर सेट करें।

उपरोक्त सेटिंग करने के बाद स्क्रिप्ट चलाएं। मैसेज रिसिपिएंट के इनबॉक्स में डिलीवर होना चाहिए।