কম্পিউটার টিউটোরিয়াল

পাইথন দিয়ে ইমেইল পাঠানো: একটি গাইড

পাইথন ব্যবহার করে ইমেইল পাঠানোর পদ্ধতি

পাইথন একটি বহু-ফিচারযুক্ত ল্যাঙ্গুয়েজ। এটি ডেটা অ্যানালাইসিস, ওয়েব ডেভেলপমেন্ট, এবং আরও অনেক কাজে ব্যবহার করা যায়। এটাই সব নয়, পাইথনে একটি হিডেন ফিচার আছে: আপনি এটি ব্যবহার করে ইমেইল পাঠাতে পারেন। এর মানে আপনি পাসওয়ার্ড রিসেট ইমেইল, ফরগট পাসওয়ার্ড ইমেইল, ইউজার নোটিফিকেশন, এবং আপনি যা পাঠাতে চান সেটি, একটি পাইথন প্রোগ্রাম থেকে পাঠাতে পারেন।

এই গাইডে, আমরা পাইথন ব্যবহার করে ইমেইল পাঠানোর পদ্ধতি আলোচনা করব। আমরা email এবং smtplib লাইব্রেরি, কীভাবে এগুলো কাজ করে, এবং একটি উদাহরণ প্রোগ্রাম লিখব ইমেইল পাঠাতে।

পাইথন ব্যবহার করে ইমেইল পাঠানো

যখন আপনি একটি কম্পিউটার প্রোগ্রাম থেকে ইমেইল পাঠান, আপনার প্রোগ্রাম সিম্পল মেইল ট্রান্সফার প্রোটোকল (SMTP) নামক একটি প্রোটোকল ব্যবহার করে মেসেজ পাঠায়। এই প্রোটোকলটি বিশ্বজুড়ের ইমেইল সার্ভিস এবং ক্লায়েন্ট মেসেজ পাঠাতে ব্যবহার করে।

একটি কম্পিউটার প্রোগ্রাম থেকে ইমেইল পাঠাতে, আপনার একটি SMTP সার্ভার থাকতে হবে। আপনি নিজে একটি সেট আপ করতে পারেন, কিন্তু আপনাকে সবসময় এটি করতে হয় না। Gmail এবং Outlook-এর মতো সার্ভিস SMTP সার্ভিস প্রদান করে যাতে আপনি আপনার বিদ্যমান ইমেইল অ্যাকাউন্ট ব্যবহার করে ইমেইল পাঠাতে পারেন।

এই গাইডে, আমরা ধরে নিচ্ছি যে আপনি Gmail-এর SMTP সার্ভার থেকে ইমেইল পাঠাচ্ছেন। তাদের SMTP সার্ভার সম্পর্কে আরও জানতে Gmail অফিসিয়াল ডকুমেন্টেশন দেখুন। আপনার ইমেইল প্রোভাইডার SMTP সাপোর্ট করে কিনা তা জানতে অনলাইনে '[প্রোভাইডারের নাম] SMTP credentials' সার্চ করুন।

ইমেইল পাঠাতে আমাদের তিনটি ধাপ ফলো করতে হবে:

  • আমাদের SMTP কানেকশন কনফিগার করা
  • একটি মেসেজ অবজেক্ট তৈরি করা
  • SMTP এর ওপর মেসেজ পাঠানো

SMTP কানেকশন কনফিগার করা

শুরু করি, আমাদের SMTP কানেকশন সেট আপ করে। আমরা smtplib নামক একটি লাইব্রেরি ব্যবহার করে এটি করতে পারি যা কানেকশন ম্যানেজ করার সকল কোড প্রদান করে। এই লাইব্রেরির فضلেই ইমেইল পাঠাতে শুধু কয়েক লাইন কোড লাগে।

smtplib লাইব্রেরি আপনার কোডে ইম্পোর্ট করে শুরু করুন:

import smtplib

এখন আমাদের SMTP সার্ভারের ক্রেডেনশিয়াল সংরক্ষণ করার জন্য ভেরিয়েবল সেট আপ করতে হবে। এই ভ্যালুগুলো ভেরিয়েবলে রাখলে আমাদের কোডের রিডেবিলিটি বজায় থাকবে। আমরা যে ভেরিয়েবলগুলো ব্যবহার করব:

sender = 'test@careerkarma.com'
password = '123456'
server = 'smtp.gmail.com'
port = 465

এই কোডে আমাদের SMTP কানেকশন তৈরির জন্য প্রয়োজনীয় সকল কনফিগারেশন আছে। এখন আমরা আমাদের SMTP সার্ভারে লগ ইন করতে পারি:

server = smtplib.SMTP_SSL(server, port)
server.login(sender, password)

আমাদের কোড আমাদের SMTP সার্ভারের সাথে একটি SSL কানেকশন তৈরি করে। এর মানে আমরা সিকিউর সকেট লেয়ার (SSL) ব্যবহার করে আমাদের সার্ভারের সাথে কানেক্ট করছি। SSL ট্র্যাডিশনাল কানেকশনের চেয়ে আরও সিকিউর এবং ফলস্বরূপ SMTP সার্ভারে এটি একটি স্ট্যান্ডার্ড হয়ে উঠেছে।

আমাদের SMTP কানেকশন এখন কনফিগারড!

একটি মেসেজ অবজেক্ট তৈরি করা

আমাদের কোড এখনো কিছুই করছে না: এটি নিশ্চিতভাবেই ইমেইল পাঠাচ্ছে না। কারণ আমরা এখনো একটি মেসেজ অবজেক্ট তৈরি করিনি। চলুন email লাইব্রেরি ব্যবহার করে এটি করি। আপনি smtplib ব্যবহার করেও মেসেজ অবজেক্ট তৈরি করতে পারেন, কিন্তু email লাইব্রেরি আরও সংক্ষিপ্ত।

প্রয়োজনীয় ইমেইল প্যাকেজগুলো ইম্পোর্ট করে শুরু করি:

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

এই লাইব্রেরিগুলো ইম্পোর্ট হলে, আমরা আমাদের মেসেজ অবজেক্ট তৈরি করতে পারি:

message = MIMEMultipart()
body = 'This is an email sent from Python!'
message['From'] = sender
message['To'] = 'test@careerkarma.com'
message['Subject'] = 'This is a test email'
message.attach(MIMEText(body, 'plain'))

আমরা 'message' নামে একটি অবজেক্ট ইনিশিয়ালাইজ করে শুরু করেছি। এই অবজেক্টটি email লাইব্রেরির MIMEMultipart ক্লাসকে রেফার করে। আমরা তারপর আমাদের ইমেইলের বডি এবং সেন্ডার, রিসিপিয়েন্ট, এবং সাবজেক্ট স্পেসিফাই করেছি।

আমাদের কোডের লাস্ট লাইন আমাদের মেসেজের বডিকে আমাদের ইমেইলের সাথে আট্যাচ করে।

মেসেজ পাঠানো

এখন বাকি থাকলো মেসেজটি পাঠানো:

server.send_message(message)

আমাদের সকল কোড একসাথে রান করলে, একটি ইমেইল পাঠানো হয়! 'This is a test email' টাইটেলের একটি ইমেইল test@careerkarma.com থেকে test@careerkarma.com-এ পাঠানো হয়।

একটি ফাইল থেকে টেমপ্লেট পড়া

আমাদের ইমেইলের বডি শুধু এক লাইন বড়। এর মানে পাইথনের ভিতরে ইমেইল বডি লিখা আমাদের জন্য আরও প্র্যাক্টিক্যাল। অধিকাংশ ইমেইল এর চেয়ে বড় হয়, তাই একটি নির্দিষ্ট ইমেইলের টেক্সট সংরক্ষণ করার জন্য একটি টেমপ্লেট তৈরি করা ভালো।

আমরা email.txt নামে একটি ফাইল তৈরি করে শুরু করব এবং নিচের কন্টেন্ট পেস্ট করব:

Hello ${NAME},
This is a test email!
Thanks,
Career Karma

এই টেমপ্লেটে "NAME" নামে একটি ভেরিয়েবল আছে, যেটি কার্লি ব্রেস ({}) এর মধ্যে এনক্লোজ করা এবং ডলার সাইন ($) দিয়ে প্রিফিক্স করা। এই ভেরিয়েবলটি পরে আমাদের কোডে রিসিপিয়েন্টের নাম দিয়ে সাবস্টিটিউট হবে।

এখন আমাদের এই টেমপ্লেটটি আমাদের কোডে পড়তে হবে। আমরা read_email নামে একটি ক্লাস তৈরি করে এটি করতে পারি যা open() মেথড ব্যবহার করে আমাদের ফাইল পড়বে।

string লাইব্রেরি থেকে Template অবজেক্ট ইম্পোর্ট করব। আমরা এই অবজেক্টটি ব্যবহার করে একটি অবজেক্ট তৈরি করব যেটি আমাদের ইমেইল পড়তে পারবে। আপনার পাইথন প্রোগ্রামের টপে নিচের লাইন কোড পেস্ট করুন:

from string import Template

আপনার সকল ইম্পোর্ট স্টেটমেন্টের নিচে এই কোড পেস্ট করুন:

def read_email():
    with open('email.txt', 'r') as file:
        contents = file.read()
    return Template(contents)

এই ফাংশন 'email.txt' ফাইলটিকে 'contents' ভেরিয়েবলে পড়বে। এর ভ্যালু পை="string" লাইব্রেরির Template মেথড ব্যবহার করে একটি Template অবজেক্ট-এ কনভার্ট হবে। ফাইল পড়ার বিষয়ে আরও জানতে আমাদের পাইথন রিড ফাইল টিউটোরিয়াল দেখুন।

আপনার প্রোগ্রামের নিচের লাইন কোডটি চেঞ্জ করুন:

body = 'This is an email sent from Python!'

এটি ব্যবহার করতে এই কোডটি:

email_content = read_email()
body = email_content.substitute(NAME="Test")

এই কোড আমাদের কোডে read_email() ফাংশনটি কল করে 'email.txt' ফাইলের কন্টেন্ট পড়ে। তারপর, আমাদের ইমেইল টেমপ্লেটের NAME এর ভ্যালু "Test" ভ্যালু দিয়ে সাবস্টিটিউট করা হয়। একসাথে, আমাদের কোড এরকম দেখাবে:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from string import Template

def read_email():
    with open('email.txt', 'r') as file:
        contents = file.read()
    return Template(contents)

sender = 'test@careerkarma.com'
password = '123456'
server = 'smtp.gmail.com'
port = 465

server = smtplib.SMTP_SSL(server, port)
server.login(sender, password)

message = MIMEMultipart()
email_content = read_email()
body = email_content.substitute(NAME="Test")
message['From'] = sender
message['To'] = 'test@careerkarma.com'
message['Subject'] = 'This is a test email'
message.attach(MIMEText(body, 'plain'))

server.send_message(message)

আপনি এই প্রোগ্রাম রান করলে, আপনার SMTP সার্ভার ক্রেডেনশিয়াল সাবস্টিটিউট করলে, একটি ইমেইল পাঠানো হবে। আপনি একটি ইমেইল পাঠানোর প্রোগ্রাম লিখলেন।

উপসংহার

পাইথনে ইমেইল পাঠানো কঠিন নয়। টেমপ্লেট ছাড়া, ইমেইল পাঠাতে শুধু কয়েক লাইন কোড লাগে। email এবং smtplib মডিউলগুলো অধিকাংশ ভারী কাজ করে।そう言うと, আপনি email মডিউল আরও এক্সটেনসিভলি ব্যবহার করতে পারেন আপনার ইমেইলগুলোর টেমপ্লেট তৈরি করতে যা ভ্যালু সাবস্টিটিউট করতে পারে।

আপনি কী চ্যালেঞ্জের জন্য রেডি? উপরের প্রোগ্রামটি মাল্টিপল রিসিপিয়েন্টকে ইমেইল পাঠাতে সাপোর্ট করার জন্য চেঞ্জ করুন। হিন্ট: আপনি এই ইমেইলগুলো পাঠাতে ফর লুপ ব্যবহার করতে চাবেন।

এখন আপনি পাইথনে ইমেইল পাঠাতে এক্সপার্টের মতো রেডি!

  1. পাইথন প্রায়োরিটি কিউ: সম্পূর্ণ গাইড

  2. পাইথন ডিকশনারি values() মেথড: ভ্যালু রিট্রিভ এবং ইটারেশন গাইড

  3. পাইথনে অটোমেটেড ইমেল মেসেজ পাঠানোর পদ্ধতি

  4. WhatsApp-এ থেকে ইমেইলে ফটো পাঠানোর চূড়ান্ত গাইড