अन्य उत्तर उत्कृष्ट हैं, हालांकि मैं अभी भी एक अलग दृष्टिकोण साझा करना चाहता था अगर कोई विकल्प तलाश रहा है।
यहां मुख्य अंतर यह है कि इस दृष्टिकोण का उपयोग करके आप अपने संदेश को प्रारूपित करने के लिए HTML / CSS का उपयोग कर सकते हैं, जिससे आप रचनात्मक हो सकते हैं और अपने ईमेल को कुछ स्टाइल दे सकते हैं। हालाँकि आप HTML का उपयोग करने के लिए लागू नहीं हैं, फिर भी आप केवल सादे पाठ का उपयोग कर सकते हैं।
ध्यान दें कि यह फ़ंक्शन कई प्राप्तकर्ताओं को ईमेल भेजना स्वीकार करता है और कई फ़ाइलों को संलग्न करने की अनुमति भी देता है।
मैंने केवल पायथन 2 पर यह कोशिश की है, लेकिन मुझे लगता है कि इसे 3 पर भी ठीक काम करना चाहिए:
import os.path
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
def send_email(subject, message, from_email, to_email=[], attachment=[]):
"""
:param subject: email subject
:param message: Body content of the email (string), can be HTML/CSS or plain text
:param from_email: Email address from where the email is sent
:param to_email: List of email recipients, example: ["a@a.com", "b@b.com"]
:param attachment: List of attachments, exmaple: ["file1.txt", "file2.txt"]
"""
msg = MIMEMultipart()
msg['Subject'] = subject
msg['From'] = from_email
msg['To'] = ", ".join(to_email)
msg.attach(MIMEText(message, 'html'))
for f in attachment:
with open(f, 'rb') as a_file:
basename = os.path.basename(f)
part = MIMEApplication(a_file.read(), Name=basename)
part['Content-Disposition'] = 'attachment; filename="%s"' % basename
msg.attach(part)
email = smtplib.SMTP('your-smtp-host-name.com')
email.sendmail(from_email, to_email, msg.as_string())
आशा है कि ये आपकी मदद करेगा! :-)