Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन का उपयोग करके अपने जीमेल खाते से अटैचमेंट के साथ मेल भेजें

इस लेख में, हम देखेंगे कि हम पायथन का उपयोग करके अनुलग्नकों के साथ ईमेल कैसे भेज सकते हैं। मेल भेजने के लिए हमें किसी बाहरी पुस्तकालय की आवश्यकता नहीं होती है। SMTPlib नामक एक मॉड्यूल है, जो पायथन के साथ आता है। यह मेल भेजने के लिए SMTP (सिंपल मेल ट्रांसफर प्रोटोकॉल) का उपयोग करता है। यह मेल करने के लिए SMTP क्लाइंट सेशन ऑब्जेक्ट बनाता है।

एसएमटीपी को वैध स्रोत और गंतव्य ईमेल आईडी, और पोर्ट नंबर की आवश्यकता है। विभिन्न साइटों के लिए पोर्ट संख्या भिन्न होती है। उदाहरण के तौर पर, Google के लिए पोर्ट 587 है ।

सबसे पहले हमें मेल भेजने के लिए मॉड्यूल आयात करना होगा।

import smtplib

यहां हम इसे और अधिक लचीला बनाने के लिए MIME (बहुउद्देशीय इंटरनेट मेल एक्सटेंशन) मॉड्यूल का भी उपयोग कर रहे हैं। MIME हेडर का उपयोग करके, हम प्रेषक और रिसीवर की जानकारी और कुछ अन्य विवरण संग्रहीत कर सकते हैं। मेल के साथ अटैचमेंट सेट करने के लिए MIME की भी आवश्यकता होती है।

हम मेल भेजने के लिए Google की Gmail सेवा का उपयोग कर रहे हैं। इसलिए हमें Google के सुरक्षा उद्देश्यों के लिए कुछ सेटिंग्स (यदि आवश्यक हो) की आवश्यकता है। अगर उन सेटिंग्स को सेट नहीं किया जाता है, तो निम्न कोड काम नहीं कर सकता है, अगर Google तृतीय-पक्ष ऐप से एक्सेस का समर्थन नहीं करता है।

एक्सेस की अनुमति देने के लिए, हमें Google खाते में 'कम सुरक्षित ऐप एक्सेस' सेटिंग सेट करने की आवश्यकता है। यदि दो चरणों में सत्यापन चालू है, तो हम कम सुरक्षित पहुंच का उपयोग नहीं कर सकते।

इस सेटअप को पूरा करने के लिए, Google के Admin Console पर जाएं, और कम सुरक्षित ऐप सेटअप खोजें।

<केंद्र> पायथन का उपयोग करके अपने जीमेल खाते से अटैचमेंट के साथ मेल भेजें

SMTP (smtplib) का उपयोग करके अनुलग्नकों के साथ मेल भेजने के चरण

  • MIME बनाएं
  • MIME में प्रेषक, प्राप्तकर्ता का पता जोड़ें
  • मेल शीर्षक को MIME में जोड़ें
  • शरीर को MIME में संलग्न करें
  • फ़ाइल को बाइनरी मोड के रूप में खोलें, जो मेल के साथ संलग्न होने वाली है
  • बाइट स्ट्रीम पढ़ें और बेस64 एन्कोडिंग योजना का उपयोग करके अनुलग्नक को एन्कोड करें।
  • अटैचमेंट के लिए हेडर जोड़ें
  • उचित सुरक्षा सुविधाओं के साथ मान्य पोर्ट नंबर के साथ SMTP सत्र प्रारंभ करें।
  • सिस्टम में लॉगिन करें।
  • मेल भेजें और बाहर निकलें

उदाहरण कोड

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
mail_content = '''Hello,
This is a test mail.
In this mail we are sending some attachments.
The mail is sent using Python SMTP library.
Thank You
'''
#The mail addresses and password
sender_address = 'sender123@gmail.com'
sender_pass = 'xxxxxxxx'
receiver_address = 'receiver567@gmail.com'
#Setup the MIME
message = MIMEMultipart()
message['From'] = sender_address
message['To'] = receiver_address
message['Subject'] = 'A test mail sent by Python. It has an attachment.'
#The subject line
#The body and the attachments for the mail
message.attach(MIMEText(mail_content, 'plain'))
attach_file_name = 'TP_python_prev.pdf'
attach_file = open(attach_file_name, 'rb') # Open the file as binary mode
payload = MIMEBase('application', 'octate-stream')
payload.set_payload((attach_file).read())
encoders.encode_base64(payload) #encode the attachment
#add payload header with filename
payload.add_header('Content-Decomposition', 'attachment', filename=attach_file_name)
message.attach(payload)
#Create SMTP session for sending the mail
session = smtplib.SMTP('smtp.gmail.com', 587) #use gmail with port
session.starttls() #enable security
session.login(sender_address, sender_pass) #login with mail_id and password
text = message.as_string()
session.sendmail(sender_address, receiver_address, text)
session.quit()
print('Mail Sent')

आउटपुट

D:\Python TP\Python 450\linux>python 327.Send_Mail.py
Mail Sent

<केंद्र> पायथन का उपयोग करके अपने जीमेल खाते से अटैचमेंट के साथ मेल भेजें
  1. ईमेलजेएस के साथ अपने Vue.js एप्लिकेशन से ईमेल कैसे भेजें

    कुछ दिनों पहले मैंने एक साधारण Vue प्रोजेक्ट पर काम करने का फैसला किया और मेरे द्वारा अभी बनाए गए संपर्क के माध्यम से ईमेल भेजने की आवश्यकता थी। जब भी कोई मेरा संपर्क फ़ॉर्म भरता है, तो मैं हर बार एक स्वचालित ईमेल प्राप्त करना चाहता था। तो मुझे ईमेलजे पर खोजना और ठोकर खाना पड़ा। मैंने इस लेख को लि

  1. फिक्स:जीमेल संदेश डिलीवर नहीं हुआ। आप इसे किसी भिन्न पते या उपनाम से भेज रहे हैं मेल को सुविधा के रूप में भेजें (समाधान)

    का उपयोग करके Gmail त्रुटि संदेश संदेश डिलीवर नहीं हुआ। आप इसे इस रूप में मेल भेजें सुविधा का उपयोग करके किसी अन्य पते या उपनाम से भेज रहे हैं, का अर्थ है कि आपने ईमेल भेजने के लिए उपयोग किए गए अतिरिक्त ईमेल खाते को गलत तरीके से सेट किया है। GMAIL आपको एक अलग ईमेल पते का उपयोग करके ईमेल भेजने की

  1. कैसे अपना जीमेल अकाउंट डिलीट करें

    कभी-कभी, आप शॉपिंग वेबसाइटों के स्पैम ईमेल और विज्ञापनों से तंग आ चुके हैं या आप अभी अपने पुराने Gmail खाते का उपयोग नहीं करते हैं, या आपको संदेह है कि आपके खाते से छेड़छाड़ की गई है। ऐसे मामलों में, आप उस Gmail खाते को हटा सकते हैं और फिर भी अपने YouTube और Google खातों को अक्षुण्ण रख सकते हैं। आपक