बहुत खोज के बाद मुझे पता नहीं चल पाया कि कैसे 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एक सूची की आवश्यकता है।