এই আর্টিকেলে আমরা দেখব কিভাবে পাইথন ব্যবহার করে অ্যাট্যাচমেন্টসহ ইমেইল পাঠানো যায়। মেইল পাঠাতে কোনো এক্সটার্নাল লাইব্রেরি দরকার নেই। SMTPlib নামে একটি মডিউল পাইথনের সাথে আসে। এটি SMTP (Simple Mail Transfer Protocol) ব্যবহার করে মেইল পাঠায়। এটি মেইলিং-এর জন্য SMTP ক্লায়েন্ট সেশন অবজেক্ট তৈরি করে।
SMTP-র জন্য বৈধ সোর্স এবং ডেস্টিনেশন ইমেইল আইডি, এবং পোর্ট নম্বর দরকার। পোর্ট নম্বর বিভিন্ন সাইটের জন্য ভিন্ন। উদাহরণস্বরূপ, গুগলের জন্য পোর্ট 587।
প্রথমে মেইল পাঠানোর মডিউল ইম্পোর্ট করতে হবে।
import smtplib
এখানে আমরা MIME (Multipurpose Internet Mail Extension) মডিউলও ব্যবহার করছি যাতে এটি আরও ফ্লেক্সিবল হয়। MIME হেডার ব্যবহার করে আমরা সেন্ডার এবং রিসিভার ইনফরমেশন এবং অন্যান্য ডিটেইলস স্টোর করতে পারি।
আমরা গুগলের Gmail সার্ভিস ব্যবহার করছি মেইল পাঠাতে। তাই গুগলের সিকিউরিটি উদ্দেশ্যে কিছু সেটিংস দরকার (যদি আবশ্যক হয়)। যদি সেটিংস সেট আপ না থাকে, তাহলে নিচের কোড কাজ নাও করতে পারে, যদি গুগল থার্ড-পার্টি অ্যাপ থেকে এক্সেস সাপোর্ট না করে।
অ্যাক্সেস অনুমতি দিতে, গুগল অ্যাকাউন্টে 'Less Secure App Access' সেটিংস সেট করতে হবে। যদি টু-স্টেপ ভেরিফিকেশন অন থাকে, তাহলে লেস সিকিউর অ্যাক্সেস ব্যবহার করা যাবে না।
এই সেটআপ কমপ্লিট করতে, গুগলস অ্যাডমিন কনসোলে যান, এবং Less Secure App সেটআপ সার্চ করুন।

SMTP (smtplib) ব্যবহার করে অ্যাট্যাচমেন্টসহ মেইল পাঠানোর ধাপসমূহ
- MIME তৈরি করুন
- MIME-এ সেন্ডার, রিসিভার অ্যাড্রেস যোগ করুন
- MIME-এ মেইল টাইটেল যোগ করুন
- MIME-এ বডি অ্যাট্যাচ করুন
- বৈধ পোর্ট নম্বর ও সিকিউরিটি ফিচারের সাথে SMTP সেশন শুরু করুন
- সিস্টেমে লগইন করুন
- মেইল পাঠিয়ে এক্সিট করুন
উদাহরণ কোড
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
mail_content = '''Hello,
This is a simple mail.
There is only text, no attachments are there
The mail is sent using Python SMTP library.
Thank You'''
# মেইল অ্যাড্রেস ও পাসওয়ার্ড
sender_address = 'sender123@gmail.com'
sender_pass = 'xxxxxxxx'
receiver_address = 'receiver567@gmail.com'
# MIME মেসেজ সেটআপ
message = MIMEMultipart()
message['From'] = sender_address
message['To'] = receiver_address
message['Subject'] = 'A test mail sent by Python. It has an attachment.' # সাবজেক্ট লাইন
# মেইলের বডি এবং অ্যাট্যাচমেন্ট
message.attach(MIMEText(mail_content, 'plain'))
# মেইল পাঠানোর জন্য SMTP সেশন তৈরি
session = smtplib.SMTP('smtp.gmail.com', 587) # gmail with port
session.starttls() # সিকিউরিটি ইনেবল করুন
session.login(sender_address, sender_pass) # mail_id এবং 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
