২০১১ সালের নভেম্বরে প্রকাশিত পাইথন ৩.২ অনুসারে, এসএমটিপ্লিবের ন্যায়বিচারের 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
।