অন্যান্য উত্তরগুলি দুর্দান্ত, যদিও কেউ বিকল্পের সন্ধানের ক্ষেত্রে আমি এখনও একটি ভিন্ন পদ্ধতির ভাগ করতে চেয়েছিলাম।
এখানে মূল পার্থক্য হ'ল এই পদ্ধতিটি ব্যবহার করে আপনি আপনার বার্তা ফর্ম্যাট করতে HTML / CSS ব্যবহার করতে পারেন, যাতে আপনি সৃজনশীল পেতে পারেন এবং আপনার ইমেলটিতে কিছু স্টাইলিং দিতে পারেন। যদিও আপনি এইচটিএমএল ব্যবহারের জন্য বল প্রয়োগ করা হয়নি তবে আপনি কেবল কেবল সরল পাঠ্য ব্যবহার করতে পারেন।
লক্ষ্য করুন যে এই ফাংশনটি একাধিক প্রাপকদের ইমেল প্রেরণকে গ্রহণ করে এবং একাধিক ফাইল সংযুক্ত করার অনুমতি দেয়।
আমি কেবল পাইথন 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())
আশা করি এটা কাজে লাগবে! :-)