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