কিভাবে পাইথন ব্যবহার করে একটি ইমেল পাঠাবেন
পাইথন অনেক বৈশিষ্ট্যের একটি ভাষা। এটি ডেটা বিশ্লেষণ, ওয়েব বিকাশ এবং আরও অনেক কিছুর জন্য ব্যবহার করা যেতে পারে। শুধু তাই নয়, পাইথনের একটি লুকানো বৈশিষ্ট্য রয়েছে:আপনি ইমেল পাঠাতে এটি ব্যবহার করতে পারেন। এর মানে হল যে আপনি Python প্রোগ্রাম থেকে পাসওয়ার্ড রিসেট ইমেল পাঠাতে পারেন, পাসওয়ার্ড ইমেল, ব্যবহারকারীর বিজ্ঞপ্তি এবং অন্য যেকোন ইমেল পাঠাতে চান।
এই নির্দেশিকায়, আমরা পাইথন ব্যবহার করে কীভাবে একটি ইমেল পাঠাতে হয় তা নিয়ে আলোচনা করতে যাচ্ছি। আমরা ইমেল এবং smtplib লাইব্রেরি, তারা কিভাবে কাজ করে, এবং একটি ইমেল পাঠানোর জন্য একটি উদাহরণ প্রোগ্রাম লিখব।
আর কোনো ঝামেলা ছাড়াই, চলুন শুরু করা যাক!
পাইথন ব্যবহার করে ইমেল পাঠানো
আপনি যখন একটি কম্পিউটার প্রোগ্রাম থেকে একটি ইমেল পাঠান, তখন আপনার প্রোগ্রাম সিম্পল মেল ট্রান্সফার প্রোটোকল (SMTP) নামক একটি প্রোটোকল ব্যবহার করে বার্তা পাঠাবে। এই প্রোটোকলটি সারা বিশ্বের ইমেল পরিষেবা এবং ক্লায়েন্টরা বার্তা পাঠাতে ব্যবহার করে।
একটি কম্পিউটার প্রোগ্রাম থেকে একটি ইমেল পাঠাতে, আপনার একটি SMTP সার্ভার থাকতে হবে। আপনি নিজের দ্বারা একটি সেট আপ করতে পারেন, কিন্তু আপনাকে সবসময় এটি করতে হবে না। Gmail এবং Outlook এর মতো পরিষেবাগুলি SMTP পরিষেবাগুলি প্রদান করে যাতে আপনি একটি ইমেল পাঠাতে আপনার বিদ্যমান ইমেল অ্যাকাউন্টগুলি ব্যবহার করতে পারেন৷
এই গাইডের জন্য, আমরা ধরে নিচ্ছি যে আপনি Gmail এর SMTP সার্ভার থেকে একটি ইমেল পাঠাচ্ছেন। আপনি Gmail অফিসিয়াল ডকুমেন্টেশনে তাদের SMTP সার্ভার সম্পর্কে আরও জানতে পারেন। আপনার ইমেল প্রদানকারী SMTP সমর্থন করে কিনা তা জানতে, '[আপনার প্রদানকারীর নাম] SMTP শংসাপত্র'-এর জন্য অনলাইনে অনুসন্ধান করুন।
একটি ইমেল পাঠাতে আমাদের তিনটি ধাপ অনুসরণ করতে হবে:
- আমাদের SMTP সংযোগ কনফিগার করুন
- একটি বার্তা বস্তু তৈরি করুন
- SMTP এর মাধ্যমে বার্তা পাঠান
একটি SMTP সংযোগ কনফিগার করা হচ্ছে
শুরু করতে, আসুন আমাদের SMTP সংযোগ সেট আপ করি। আমরা smtplib নামক একটি লাইব্রেরি ব্যবহার করে এটি করতে পারি যা সংযোগ পরিচালনা করার জন্য আমাদের প্রয়োজনীয় সমস্ত কোড সরবরাহ করে। এই লাইব্রেরির জন্য ধন্যবাদ একটি ইমেল পাঠাতে কোডের কয়েক লাইন লাগে।
81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷
৷গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।
আপনার কোডে smtplib লাইব্রেরি আমদানি করে শুরু করুন:
import smtplib
আমাদের এখন ভেরিয়েবল সেট আপ করতে হবে যা আমাদের SMTP সার্ভারের জন্য শংসাপত্র সংরক্ষণ করে। ভেরিয়েবলে এই মানগুলি সংরক্ষণ করা আমাদের কোডের পাঠযোগ্যতা বজায় রাখতে সাহায্য করবে। এখানে আমরা যে ভেরিয়েবলগুলি ব্যবহার করতে যাচ্ছি:
sender = '[email protected]' 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 সংযোগ এখন কনফিগার করা হয়েছে!
একটি বার্তা অবজেক্ট তৈরি করুন
আমাদের কোড এই মুহূর্তে খুব বেশি কিছু করে না:এটি অবশ্যই একটি ইমেল পাঠায় না। কারণ আমরা এখনও একটি বার্তা অবজেক্ট তৈরি করিনি। ইমেল লাইব্রেরি ব্যবহার করে এটি করা যাক। আপনি একটি বার্তা বস্তু তৈরি করতে smtplib ব্যবহার করতে পারেন, ইমেল লাইব্রেরি আরও সংক্ষিপ্ত।
আসুন প্রয়োজনীয় ইমেল প্যাকেজগুলি আমদানি করে শুরু করি:
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'] = '[email protected]' message['Subject'] = 'This is a test email' message.attach(MIMEText(body, 'plain'))
আমরা 'বার্তা' নামক একটি অবজেক্ট শুরু করে শুরু করেছি। এই বস্তুটি ইমেল লাইব্রেরি থেকে MIMEMMultipart ক্লাস উল্লেখ করে। তারপরে আমরা আমাদের ইমেলের মূল অংশ এবং প্রেরক, প্রাপক এবং বিষয় নির্দিষ্ট করেছি।
আমাদের কোডের চূড়ান্ত লাইন আমাদের ইমেলের সাথে আমাদের বার্তার মূল অংশ সংযুক্ত করে।
বার্তা পাঠান
এখন যা করা বাকি আছে তা হল আমাদের বার্তা পাঠান:
server.send_message(message)
যখন আমরা আমাদের সমস্ত কোড একসাথে চালাই, তখন একটি ইমেল পাঠানো হয়! 'এটি একটি পরীক্ষার ইমেল' শিরোনাম সহ একটি ইমেল [email protected] থেকে [email protected] এ পাঠানো হয়েছে।
একটি ফাইল থেকে একটি টেমপ্লেট পড়া
আমাদের ইমেইলের বডি মাত্র এক লাইন লম্বা। এর মানে হল যে পাইথনের ভিতরে আমাদের ইমেল বডি লেখা আমাদের জন্য আরও ব্যবহারিক। বেশিরভাগ ইমেল এর থেকে দীর্ঘ, এবং তাই একটি টেমপ্লেট তৈরি করা ভাল যা একটি নির্দিষ্ট ইমেলের জন্য পাঠ্য সংরক্ষণ করে।
আমরা email.txt নামে একটি ফাইল তৈরি করে এবং নিম্নলিখিত বিষয়বস্তু পেস্ট করে শুরু করব:
Hello ${NAME}, This is a test email! Thanks, Career Karma
এই টেমপ্লেটটিতে "NAME" নামক একটি ভেরিয়েবল রয়েছে, যা কোঁকড়া ধনুর্বন্ধনী ({}) এর মধ্যে আবদ্ধ এবং এর আগে একটি ডলার চিহ্ন ($) রয়েছে। এই ভেরিয়েবলটি পরবর্তীতে আমাদের কোডে প্রাপকের নামের সাথে প্রতিস্থাপিত হবে।
আমাদের এখন আমাদের কোডে এই টেমপ্লেটটি পড়তে হবে। আমরা read_email নামে একটি ক্লাস তৈরি করে এটি করতে পারি যা আমাদের ফাইলটি পড়ার জন্য open() পদ্ধতি ব্যবহার করে।
আমরা স্ট্রিং লাইব্রেরি থেকে টেমপ্লেট অবজেক্ট ইম্পোর্ট করব। আমরা এই অবজেক্টটি ব্যবহার করব এমন একটি বস্তু তৈরি করতে যা আমাদের ইমেল দ্বারা পড়তে পারে। আপনার পাইথন প্রোগ্রামের উপরে কোডের নিম্নলিখিত লাইনে আটকান:
from string import Template
আপনার সমস্ত আমদানি বিবৃতির নীচে, এই কোডটি পেস্ট করুন:
def read_email(): with open('email.txt', 'r') as file: contents = file.read() return Template(contents)
এই ফাংশনটি "email.txt" নামক ফাইলটিকে ভেরিয়েবল "বিষয়বস্তু" এ পড়বে। এর মান "স্ট্রিং" লাইব্রেরি থেকে টেমপ্লেট পদ্ধতি ব্যবহার করে একটি টেমপ্লেট অবজেক্টে রূপান্তরিত হয়। আপনি আমাদের পাইথন রিড ফাইল টিউটোরিয়াল থেকে ফাইল পড়ার বিষয়ে আরও জানতে পারবেন।
আপনার প্রোগ্রামে কোডের নিম্নলিখিত লাইন পরিবর্তন করুন:
body = 'This is an email sent from Python!'
এই কোডটি ব্যবহার করতে:
email_content = read_email() body = email_content.substitute(NAME="Test")
এই কোডটি read_email()
কল করে "email.txt" ফাইলের বিষয়বস্তু পড়ার জন্য আমাদের কোডের ফাংশন। তারপর, আমাদের ইমেল টেমপ্লেটের ভিতরে NAME-এর মান "পরীক্ষা" মান দিয়ে প্রতিস্থাপিত হয়। একসাথে, আমাদের কোড এইরকম দেখায়:
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 = '[email protected]' 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'] = '[email protected]' message['Subject'] = 'This is a test email' message.attach(MIMEText(body, 'plain'))
আপনি যখন এই প্রোগ্রামটি চালাবেন, আপনার SMTP সার্ভারের শংসাপত্রগুলি প্রতিস্থাপন করে, একটি ইমেল পাঠানো হবে। আপনি একটি ইমেল পাঠানোর জন্য একটি প্রোগ্রাম লিখেছেন৷
৷উপসংহার
পাইথনে একটি ইমেল পাঠানো কঠিন হতে হবে না। একটি টেমপ্লেট ব্যবহার না করে, একটি ইমেল পাঠানোর জন্য কোডের কয়েকটি লাইন লাগে। ইমেল এবং smtplib মডিউলগুলি বেশিরভাগ ভারী-উত্তোলন করে। এটি বলে, আপনি আপনার ইমেলের জন্য টেমপ্লেট তৈরি করতে ইমেল মডিউলটি আরও ব্যাপকভাবে ব্যবহার করতে পারেন যা মানগুলিকে প্রতিস্থাপন করতে পারে।
আপনি একটি চ্যালেঞ্জ জন্য আপ? একাধিক প্রাপককে ইমেল পাঠানো সমর্থন করতে উপরে থেকে প্রোগ্রামটি পরিবর্তন করুন। ইঙ্গিত:আপনি এই ইমেলগুলি পাঠাতে একটি লুপ ব্যবহার করতে চাইবেন।
এখন আপনি একজন বিশেষজ্ঞের মতো পাইথনে ইমেল পাঠানো শুরু করতে প্রস্তুত!