অনেক অনুসন্ধানের পরেও আমি একাধিক প্রাপককে প্রেরণে কিভাবে smtplib.sendmail ব্যবহার করবেন তা জানতে পারি না। সমস্যাটি যখনই মেল পাঠানো হত তখনই মেল শিরোনামগুলিতে একাধিক ঠিকানা থাকবে বলে মনে হয় তবে বাস্তবে কেবল প্রথম প্রাপকই ইমেলটি গ্রহণ করতে পারে।
সমস্যাটি মনে হচ্ছে email.Message
মডিউলটি smtplib.sendmail()
ফাংশনের চেয়ে আলাদা কিছু প্রত্যাশা করে।
সংক্ষেপে, একাধিক প্রাপকদের প্রেরণ করার জন্য আপনাকে হেডারটি কমা বিস্মৃত ইমেল ঠিকানাগুলির একটি স্ট্রিং হিসাবে সেট করা উচিত। sendmail()
পরামিতি to_addrs
তবে ইমেল ঠিকানাগুলি একটি তালিকা থাকা উচিত।
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
import smtplib
msg = MIMEMultipart()
msg["Subject"] = "Example"
msg["From"] = "me@example.com"
msg["To"] = "malcom@example.com,reynolds@example.com,firefly@example.com"
msg["Cc"] = "serenity@example.com,inara@example.com"
body = MIMEText("example email body")
msg.attach(body)
smtp = smtplib.SMTP("mailhost.example.com", 25)
smtp.sendmail(msg["From"], msg["To"].split(",") + msg["Cc"].split(","), msg.as_string())
smtp.quit()
for addr in recipients: msg['To'] = addr
এবং তারপর এটি কাজ করে। একাধিক অ্যাসাইনমেন্ট আসলে প্রতিটিটির জন্য একটি নতুন 'টু' শিরোনাম যুক্ত করে। এটি একটি খুব উদ্ভট ইন্টারফেস, আমি কীভাবে এটি চেষ্টা করে দেখেছি তা ব্যাখ্যা করতে পারি না। এমনকি আমি subprocess
এটি জানার sendmail
আগে আমার বিচক্ষণতা বাঁচাতে ইউনিক্স প্যাকেজটি কল করার বিষয়েও বিবেচনা করছি।
sendmail
একটি তালিকা দরকার।