কম্পিউটার

পাইথনে কীভাবে স্বয়ংক্রিয় ইমেল বার্তা পাঠাবেন

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

আপনার সোশ্যাল মিডিয়া চ্যানেলে একজন নতুন গ্রাহককে ধন্যবাদ ইমেল পাঠানোর জন্য হোক বা আপনার সাম্প্রতিক প্রকল্পে ইমেল কার্যকারিতা যোগ করার জন্য হোক, পাইথনে SMTP ব্যবহার করে স্বয়ংক্রিয় বার্তা পাঠানোর ক্ষমতা এমন কিছু যা কাজে আসতে বাধ্য৷

আজ আপনার মেশিনে চলমান ইমেল পাঠাতে আপনি কিভাবে একটি পাইথন স্ক্রিপ্ট পেতে পারেন তা জানতে পড়ুন৷

SMTP কি?

সহজভাবে বলতে গেলে, SMTP, বা সিম্পল মেল ট্রান্সফার প্রোটোকল হল মেল সার্ভারের জন্য একটি যোগাযোগ প্রোটোকল যা ইন্টারনেটের মাধ্যমে ইমেল প্রেরণ করে৷

এটি টিসিপি/আইপি স্যুটের অ্যাপ্লিকেশন স্তরের একটি অবিচ্ছেদ্য অংশ, যা ইন্টারনেট বা অন্যান্য অনুরূপ নেটওয়ার্কগুলিতে যোগাযোগের জন্য ব্যবহৃত প্রোটোকলগুলির একটি সেট। একটি নেটওয়ার্কে যেখানে SMTP প্রয়োগ করা হয়, একটি প্রক্রিয়া যা স্টোর এবং ফরওয়ার্ড নামে পরিচিত নেটওয়ার্ক জুড়ে মেল সরাতে সাহায্য করে।

প্রতিটি এন্ডপয়েন্টে, মেল ট্রান্সফার এজেন্ট (MTA) নামে পরিচিত সফ্টওয়্যারটি অংশগ্রহণকারী SMTP সার্ভারের মধ্যে যোগাযোগের সুবিধার্থে স্টোর এবং ফরওয়ার্ড ব্যবহার করে। তাই, SMTP-এর প্রধান ভূমিকা হল, একটি নেটওয়ার্কে কোথায় এবং কিভাবে মেল এক বিন্দু থেকে অন্য বিন্দুতে চলে যায় তা নির্ধারণ করা।

শুরু করা

এই প্রোগ্রামটি ব্যবহার করে ইমেল পাঠানোর জন্য আপনার একটি ইমেল অ্যাকাউন্ট থাকতে হবে। এর কারণ হল আমরা ইমেল পাঠাতে ইমেল ক্লায়েন্টের SMTP পরিষেবা ব্যবহার করব। এই টিউটোরিয়ালের জন্য, আমরা Gmail ব্যবহার করব।

আপনি পরীক্ষামূলক ইমেল পাঠাতে একটি স্থানীয় SMTP ডিবাগিং সার্ভারও ব্যবহার করতে পারেন, কিন্তু আপাতত আমরা ইমেল পাঠাতে একটি ইমেল অ্যাকাউন্ট ব্যবহার করব কারণ এটি আরও স্বজ্ঞাত৷

একটি বিদ্যমান Gmail অ্যাকাউন্ট ব্যবহার করা সম্ভব, কিন্তু আপনি আপনার প্রোগ্রামের সাথে খেলার সাথে সাথে এটি শীঘ্রই পরীক্ষামূলক ইমেল দিয়ে পূর্ণ হতে পারে। এই কারণেই আমরা পরীক্ষার উদ্দেশ্যে একটি 'থ্রোওয়ে' অ্যাকাউন্ট তৈরি করার পরামর্শ দিই৷

এখন, কম নিরাপদ অ্যাপগুলিকে আপনার Gmail অ্যাকাউন্ট অ্যাক্সেস করার অনুমতি দেওয়ার বিকল্পটি চালু করুন। এটি একটি থ্রোওয়ে ইমেল ব্যবহার করার আরেকটি কারণ কারণ এটি আপনার প্রাথমিক ইমেলের গোপনীয়তা সেটিংসের সাথে খেলার জন্য সুপারিশ করা হয় না।

পাইথনে ইমেল লেখা

Python 3 smtplib (smtp লাইব্রেরির জন্য সংক্ষিপ্ত) নামক একটি মডিউলের সাথে আগে থেকে ইনস্টল করা আছে, যা SMTP সার্ভারের সাথে কাজ করতে ব্যবহার করা যেতে পারে।

অন্যান্য পাইথন মডিউলের মতো, আপনাকে প্রথমে যা করতে হবে তা হল smtplib আমদানি করা।

import smtplib

একটি SMTP অবজেক্ট শুরু করা হচ্ছে

এখন, আপনি একটি SMTP অবজেক্ট তৈরি করতে smtplib ব্যবহার করতে পারেন, যা আপনাকে একটি প্রচলিত ইমেল ক্লায়েন্টের বেশিরভাগ কার্যকারিতা প্রদান করবে। যাইহোক, একটি SMTP অবজেক্টের ফাংশন শুধুমাত্র উদাহরণ পদ্ধতির মাধ্যমে ব্যবহার করা যেতে পারে। সুতরাং, স্বাভাবিকভাবেই, পরবর্তী ধাপ হল একটি অবজেক্ট ইনস্ট্যান্স ঘোষণা করা।

mySMTP = smtplib.SMTP("smtp.google.com") 

এটি Google-এর SMTP সার্ভার ব্যবহার করে ইমেল পাঠাতে SMTP অবজেক্টকে কনফিগার করে।

এর পরে, আমরা প্রেরক এবং প্রাপকের ইমেলগুলি নির্দিষ্ট করি। আপনার আগে করা Gmail অ্যাকাউন্টটি এখানে কাজে আসে৷

emailSender = “[email protected]
myThroaway = "[email protected]"
emailRecipients = [myThroaway]

এখানে একটি বিষয় লক্ষণীয় যে প্রাপক তালিকাটি আসলে একটি অ্যারে, যার মানে এটি অ-পারমাণবিক মান সংরক্ষণ করার জন্য ডিজাইন করা হয়েছে। ফলস্বরূপ, আপনি এই ক্ষেত্রে একটি সম্পূর্ণ মেইলিং তালিকাও নির্দিষ্ট করতে পারেন!

বার্তা লেখা

যুক্তিযুক্তভাবে প্রক্রিয়াটির সবচেয়ে সহজবোধ্য অংশ, এখানে আপনাকে মানগুলি ইনপুট করতে হবে যা আপনি একটি নতুন ইমেল রচনা করার সময় সাধারণত যোগ করতেন। এর মধ্যে রয়েছে:

  • প্রেরকের বিবরণ
  • প্রাপকের বিবরণ
  • বিষয়
  • মেসেজ বডি

এই ক্ষেত্রগুলিকে ট্রিপল-উদ্ধৃতি চিহ্নের ভিতরে একত্রিত করা হয় এবং নিম্নরূপ সীমাবদ্ধ করা হয়:

newEmail = """From: From Person <[email protected]>
To: To Person <[email protected]>
Subject: Email Test
This is the body of the email.
"""

ইমেল পাঠানো হচ্ছে

অবশেষে, আমরা আপনার SMTP সার্ভার থেকে প্রাপকের সার্ভারে মেল পাঠাতে sendmail কমান্ড ব্যবহার করতে পারি।

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

এখন, শুধুমাত্র একটি চূড়ান্ত ধাপ রয়েছে:যেকোনও পূর্বাভাসযোগ্য প্রোগ্রাম ক্র্যাশ রোধ করতে কোডটি পুনরায় সংগঠিত করা।

আপনার পাইথন ইমেল প্রোগ্রামের সমস্যা সমাধান করা

কখনও কখনও, আপনার SMTP সার্ভার প্রাপকের সাথে একটি সংযোগ স্থাপন করতে ব্যর্থ হতে পারে, অথবা একটি SMTP পোর্ট থেকে অন্য পোর্টে একটি ইমেল প্রেরণে সমস্যা হতে পারে৷ এই ধরনের একটি ইভেন্টে, আপনার প্রোগ্রাম অপ্রত্যাশিতভাবে ক্র্যাশ হতে পারে৷

এই ধরনের সম্ভাবনার জন্য অ্যাকাউন্ট করার জন্য, আপনি একটি চেষ্টা-ব্যতীত ব্যবহার করতে পারেন ব্লক করুন এবং ত্রুটি-প্রবণ বিবৃতিগুলি ট্রাই করুন-এর ভিতরে রাখুন ব্লক আপনার সম্পূর্ণ প্রোগ্রাম, চেষ্টা-ব্যতীত ব্লক সহ, দেখতে এইরকম কিছু হওয়া উচিত:

import smtplib
emailSender = “[email protected]
myThroaway = ‘[email protected]
emailRecipients = [myThroaway]
newEmail = """From: From Person <[email protected]>
To: To Person <[email protected]>
Subject: Email Test
This is the body of the email.
"""
try:
smtpObj = smtplib.SMTP(‘smtp.gmail.com’)
mySMTP.sendmail(emailSender, emailRecipients, newEmail)
print (“Email sent successfully!”)
except SMTPException:
print ("Error: There was an error in sending your email.")

আপনার ইমেল সুরক্ষিত করা

আপনি যদি ইমেল পাঠানোর জন্য একটি বাস্তব-বিশ্বের সেটিংসে পাইথন ব্যবহার করতে চান, তাহলে উভয় প্রান্তেই যোগাযোগ নিরাপদ কিনা তা নিশ্চিত করা গুরুত্বপূর্ণ৷

ডিফল্ট পোর্টের সাথে একটি সাধারণ SMTP সার্ভার ব্যবহার করা যোগাযোগে কোনো এনক্রিপশন স্তর প্রদান করে না। এর মানে হল যে কোনো তৃতীয়-পক্ষ আপনার নেটওয়ার্কে শুনলে, এটি আপনার লগইন শংসাপত্র এবং আপনার ইমেলে থাকা তথ্য অ্যাক্সেস করতে পারে।

এই সমস্যাটি প্রতিরোধ করার একটি উপায় হল আপনার যোগাযোগ এনক্রিপ্ট করতে TLS (ট্রান্সপোর্ট লেয়ার সিকিউরিটি) প্রোটোকল ব্যবহার করা। এটি একই প্রোটোকল যা প্রধান ইমেল ক্লায়েন্ট যেমন Gmail এবং Outlook দ্বারা ব্যবহৃত হয় যাতে আপনার ইমেলগুলি কখনই ভুল হাতে না পড়ে৷

পাইথনে কীভাবে স্বয়ংক্রিয় ইমেল বার্তা পাঠাবেন

এটি করার জন্য, আমাদের আগে তৈরি করা প্রোগ্রামটিতে আমাদের কিছু ছোটখাটো পরিবর্তন করতে হবে।

প্রথম ধাপ, অবশ্যই, ssl আমদানি করা smtplib সহ লাইব্রেরি . ssl লাইব্রেরি আপনাকে একটি নিরাপদ SSL প্রসঙ্গ তৈরি করার এবং উভয় প্রান্তে নির্দিষ্ট পোর্টের সাথে সংযোগ করে একটি এনক্রিপ্ট করা নেটওয়ার্কের মাধ্যমে যোগাযোগ করার ক্ষমতা দেয়৷

একটি সুরক্ষিত SSL প্রসঙ্গ সাইফার, প্রোটোকল সংস্করণ, বিশ্বস্ত শংসাপত্র, TLS বিকল্প এবং TLS এক্সটেনশনের সংগ্রহ ছাড়া কিছুই নয়৷

এটি অনুসরণ করে, আমরা TLS পোর্ট নির্দিষ্ট করতে পারি এবং কয়েকটি ssl যোগ করতে পারি একটি সুরক্ষিত ইমেইল তৈরি করতে লাইব্রেরি ফাংশন।

কোডটি, সমস্ত পরিবর্তন সহ, এইরকম কিছু দেখায়:

import smtplib, ssl
smtpServer = "smtp.gmail.com"
port = 587
myEmail = "[email protected]"
password = "my_password"
#email and password can also be user input fields
context = ssl.create_default_context()
newEmail = """From: From Person <[email protected]>
To: To Person <[email protected]>
Subject: Email Test
This is the body of the email.
"""
try:
server = smtplib.SMTP(smtpServer,port)
server.starttls(context=context)
server.login(newEmail, password)
except Exception as e:
print("the email could not be sent.")
finally:
server.quit()

আগের মতই, কোনো আকস্মিক প্রোগ্রাম ক্র্যাশ রোধ করার জন্য আপনাকে ব্লক বাদে SMTP ইন্সট্যান্স তৈরি এবং ব্যবহার করতে হবে।

এই পাইথন স্ক্রিপ্ট দিয়ে আপনি কি করতে পারেন

এখন যেহেতু আপনি কোড ব্যবহার করে ইমেলগুলি স্বয়ংক্রিয় করার দুর্দান্ত এবং আশ্চর্যজনকভাবে দরকারী দক্ষতা অর্জন করেছেন, আপনি এটিকে যে কোনও প্ল্যাটফর্মে প্রয়োগ করতে পারেন যাতে একটি বৈচিত্র্যময় মেলিং তালিকায় ইমেল পাঠানোর প্রয়োজন হয়৷

আপনার ব্যক্তিগত ওয়েবসাইটে এটি ব্যবহার করা থেকে স্বয়ংক্রিয় স্বীকৃতি ইমেলগুলি পাঠানোর জন্য এটি ব্যবহার করা থেকে শুরু করে ক্রিসমাস কার্ড বা আপনার পরিবার এবং বন্ধুদের ইমেল করার জন্য এটি ব্যবহার করা, এই ছোট পাইথন স্ক্রিপ্টের ব্যবহার শুধুমাত্র আপনার নিজের সৃজনশীলতার দ্বারা সীমাবদ্ধ৷

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

কোডের সাথে দুর্দান্ত জিনিস তৈরি করা চালিয়ে যেতে, পাইথন 3 দিয়ে কীভাবে আপনার নিজস্ব টেলিগ্রাম বট তৈরি করবেন সে সম্পর্কে আমাদের গাইড দেখুন!


  1. আউটলুকে ইমেল আলিয়াস থেকে কিভাবে পাঠাবেন।

  2. কীভাবে একটি Microsoft টিম চ্যানেলে একটি ইমেল পাঠাবেন

  3. কিভাবে ইনস্টাগ্রামে ভয়েস মেসেজ পাঠাবেন?

  4. কিভাবে বেনামে ইমেল পাঠাবেন