এই নিবন্ধে, আমরা দেখব কিভাবে আমরা পাইথন ব্যবহার করে সংযুক্তি সহ ইমেল পাঠাতে পারি। মেইল পাঠাতে, আমাদের কোন বহিরাগত লাইব্রেরির প্রয়োজন নেই। SMTPlib নামে একটি মডিউল আছে, যা পাইথনের সাথে আসে। এটি মেইল পাঠানোর জন্য SMTP (সিম্পল মেল ট্রান্সফার প্রোটোকল) ব্যবহার করে। এটি মেল করার জন্য SMTP ক্লায়েন্ট সেশন অবজেক্ট তৈরি করে।
SMTP-এর বৈধ উৎস এবং গন্তব্য ইমেল আইডি এবং পোর্ট নম্বর প্রয়োজন। পোর্ট নম্বর বিভিন্ন সাইটের জন্য পরিবর্তিত হয়। উদাহরণ হিসেবে, গুগলের জন্য পোর্ট হল 587 .
প্রথমে আমাদের মেইল পাঠানোর জন্য মডিউল আমদানি করতে হবে।
import smtplib
এটিকে আরও নমনীয় করতে এখানে আমরা MIME (মাল্টিপারপাস ইন্টারনেট মেল এক্সটেনশন) মডিউল ব্যবহার করছি। MIME হেডার ব্যবহার করে, আমরা প্রেরক এবং প্রাপকের তথ্য এবং কিছু অন্যান্য বিবরণ সংরক্ষণ করতে পারি। মেইলের সাথে সংযুক্তি সেট করার জন্যও MIME প্রয়োজন৷
আমরা মেইল পাঠানোর জন্য Google এর Gmail পরিষেবা ব্যবহার করছি। তাই গুগলের নিরাপত্তার জন্য আমাদের কিছু সেটিংস (প্রয়োজন হলে) প্রয়োজন। যদি সেই সেটিংস সেট আপ না করা থাকে, তাহলে নিম্নলিখিত কোডটি কাজ নাও করতে পারে, যদি Google তৃতীয় পক্ষের অ্যাপ থেকে অ্যাক্সেস সমর্থন না করে।
অ্যাক্সেসের অনুমতি দেওয়ার জন্য, আমাদের Google অ্যাকাউন্টে 'কম নিরাপদ অ্যাপ অ্যাক্সেস' সেটিংস সেট করতে হবে। যদি দুই ধাপ যাচাইকরণ চালু থাকে, তাহলে আমরা কম নিরাপদ অ্যাক্সেস ব্যবহার করতে পারি না।
এই সেটআপটি সম্পূর্ণ করতে, Google এর অ্যাডমিন কনসোলে যান এবং কম নিরাপদ অ্যাপ সেটআপের জন্য অনুসন্ধান করুন৷
<কেন্দ্র>SMTP (smtplib) ব্যবহার করে সংযুক্তি সহ মেল পাঠানোর পদক্ষেপগুলি
- MIME তৈরি করুন
- MIME-এ প্রেরক, প্রাপকের ঠিকানা যোগ করুন
- MIME-এ মেল শিরোনাম যোগ করুন
- শরীরে MIME এ সংযুক্ত করুন
- ফাইলটি বাইনারি মোড হিসাবে খুলুন, যা মেইলের সাথে সংযুক্ত হতে চলেছে
- বাইট স্ট্রীম পড়ুন এবং base64 এনকোডিং স্কিম ব্যবহার করে সংযুক্তি এনকোড করুন৷
- সংযুক্তিগুলির জন্য শিরোনাম যোগ করুন
- সঠিক নিরাপত্তা বৈশিষ্ট্য সহ বৈধ পোর্ট নম্বর দিয়ে SMTP সেশন শুরু করুন।
- সিস্টেমে লগইন করুন।
- মেল পাঠান এবং প্রস্থান করুন
উদাহরণ কোড
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.base import MIMEBase from email import encoders mail_content = '''Hello, This is a test mail. In this mail we are sending some attachments. The mail is sent using Python SMTP library. Thank You ''' #The mail addresses and password sender_address = '[email protected]' sender_pass = 'xxxxxxxx' receiver_address = '[email protected]' #Setup the MIME message = MIMEMultipart() message['From'] = sender_address message['To'] = receiver_address message['Subject'] = 'A test mail sent by Python. It has an attachment.' #The subject line #The body and the attachments for the mail message.attach(MIMEText(mail_content, 'plain')) attach_file_name = 'TP_python_prev.pdf' attach_file = open(attach_file_name, 'rb') # Open the file as binary mode payload = MIMEBase('application', 'octate-stream') payload.set_payload((attach_file).read()) encoders.encode_base64(payload) #encode the attachment #add payload header with filename payload.add_header('Content-Decomposition', 'attachment', filename=attach_file_name) message.attach(payload) #Create SMTP session for sending the mail session = smtplib.SMTP('smtp.gmail.com', 587) #use gmail with port session.starttls() #enable security session.login(sender_address, sender_pass) #login with mail_id and password text = message.as_string() session.sendmail(sender_address, receiver_address, text) session.quit() print('Mail Sent')
আউটপুট
D:\Python TP\Python 450\linux>python 327.Send_Mail.py Mail Sent
<কেন্দ্র>