২০১১ সালের নভেম্বরে প্রকাশিত পাইথন ৩.২ অনুসারে, এসএমটিপ্লিবের ন্যায়বিচারের send_messageপরিবর্তে একটি নতুন ফাংশন রয়েছে sendmailযা টু / সিসি / বিসিসিয়ের সাথে কাজ করা সহজ করে তোলে। পাইথনের অফিসিয়াল ইমেল উদাহরণগুলি থেকে কিছুটা সামান্য পরিবর্তন নিয়ে আসা, আমরা পাই:
import smtplib
from email.message import EmailMessage
with open(textfile) as fp:
msg = EmailMessage()
msg.set_content(fp.read())
msg['Subject'] = 'The contents of %s' % textfile
msg['From'] = me
msg['To'] = you
msg['Cc'] = them
msg['Bcc'] = they
s = smtplib.SMTP('localhost')
s.send_message(msg)
s.quit()
শিরোনামগুলি দুর্দান্তভাবে কাজ করে, কারণ প্রেরণ_মেসেজ বিসিসিকে ডকুমেন্টেশনে বর্ণিত হিসাবে শ্রদ্ধা করে :
সেন্ড_মেসেজটি কোনও বিসিসি বা রিসেন্ট-বিসিসি শিরোনামকে প্রেরণ করে না যা ছবিতে প্রদর্শিত হতে পারে
সঙ্গে sendmailএটিকে আরো সিসি হেডার যোগ করার জন্য সাধারণ বিষয় ছিল, যেমন কিছু কাজ:
msg['Bcc'] = blind.email@adrress.com
বা
msg = "From: from.email@address.com" +
"To: to.email@adress.com" +
"BCC: hidden.email@address.com" +
"Subject: You've got mail!" +
"This is the message body"
সমস্যাটি হ'ল, সেন্ডমেল ফাংশনটি সেই সমস্ত শিরোনামের সাথে একই আচরণ করে, যার অর্থ তারা বিসিসির উদ্দেশ্যগুলি পরাস্ত করে সমস্ত টু: এবং বিসিসি: ব্যবহারকারীদের কাছে প্রেরণ করা হবে (দৃশ্যমান)। সমাধান, এখানে অন্যান্য উত্তরের অনেকগুলি হিসাবে দেখানো হয়েছে, হ'ল বিসিসিকে শিরোলেখগুলিতে অন্তর্ভুক্ত করা হয়নি, এবং কেবলমাত্র ইমেলগুলির তালিকায় কেবল পাস করা হয়েছে sendmail।
সাবধানবাণীতে এর send_messageজন্য একটি বার্তা অবজেক্টের প্রয়োজন, যার অর্থ আপনাকে email.messageকেবল স্ট্রিংগুলিতে প্রবেশের পরিবর্তে একটি শ্রেণি আমদানি করতে হবে sendmail।