কম্পিউটার

পাইথনে SMTP প্রোটোকল ক্লায়েন্ট (smtplib)


পাইথনের স্ট্যান্ডার্ড লাইব্রেরিতে 'smtplib' মডিউল রয়েছে যা একটি SMTP ক্লায়েন্ট সেশন অবজেক্টকে সংজ্ঞায়িত করে যা পাইথন প্রোগ্রামের মাধ্যমে মেল পাঠাতে ব্যবহার করা যেতে পারে।

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

ইনকামিং মেইল ​​সার্ভার দুটি প্রধান বৈচিত্রে আসে। POP3, বা পোস্ট অফিস প্রোটোকল এবং IMAP, বা ইন্টারনেট মেসেজ অ্যাক্সেস প্রোটোকল৷

smptlib.SMTP()ফাংশন

এই ফাংশনটি SMTP ক্লাসের একটি বস্তু প্রদান করে। এটি একটি SMTP বা ESMTP সার্ভারের সাথে একটি সংযোগ encapsulates এবং পরিচালনা করে। নিম্নলিখিত আর্গুমেন্টগুলি এই ফাংশনের স্বাক্ষরে সংজ্ঞায়িত করা হয়েছে −

হোস্ট৷
একটি স্ট্রিং যা দূরবর্তী হোস্টের নাম যার সাথে সংযোগ করতে হবে৷
পোর্ট
একটি নম্বর যা সংযোগ করতে পোর্ট নির্দিষ্ট করে৷ ডিফল্টরূপে, smtplib.SMTP_PORT ব্যবহার করা হয়।
local_hostname
HELO/EHLO কমান্ডে স্থানীয় হোস্টের FQDN হিসাবে ব্যবহৃত হয়৷
source_address
একটি 2-টুপল (হোস্ট, পোর্ট) অবজেক্ট যার সাথে সকেট বাঁধতে হবে

এতে নিম্নলিখিত পদ্ধতি রয়েছে যা SMTP অপারেশনগুলিকে সমর্থন করে −

সংযোগ () −

এই পদ্ধতিটি একটি প্রদত্ত পোর্টে একটি হোস্টের সাথে একটি সংযোগ স্থাপন করে।

লগইন() -

এই ফাংশনটি SMTP সার্ভারে লগইন করতে ব্যবহারকারীর নাম এবং পাসওয়ার্ড আর্গুমেন্ট নেয়৷

ছাড়ুন() -

এই ফাংশনটি SMTP সেশন বন্ধ করে দেয়৷

ডেটা() -

এই ফাংশনের 'মেসেজ' আর্গুমেন্ট সার্ভারে পাঠানো হয়।

docmd ()−

এই ফাংশনটি একটি কমান্ড পাঠায় এবং এর প্রতিক্রিয়া কোড ফেরত দেয়

এহলো () -

এই ফাংশন সার্ভার সনাক্ত করে।

starttls() -

এই ফাংশন টিএলএস মোড শুরু করে।

getreply () -

এই ফাংশনটি সার্ভার থেকে প্রতিক্রিয়া কোড আকারে উত্তর গ্রহণ করে।

putcmd () -

এই ফাংশন সার্ভারে একটি কমান্ড পাঠায়।

send_message() −

এই ফাংশনটি বার্তাটিকে একটি বাইট স্ট্রিং-এ রূপান্তর করে এবং এটিকে মেল পাঠানোর জন্য পাস করে৷

মেল পাঠান () -

এই কমান্ডটি একটি সম্পূর্ণ মেল লেনদেন সম্পাদন করে।

যুক্তিগুলো হল −

from_addr
এই মেল পাঠানোর ঠিকানা।
to_addrs
এই মেলটি পাঠাতে ঠিকানাগুলির একটি তালিকা৷
msg
পাঠাতে হবে বার্তা৷

নিচের কোডটি একটি ইমেল পাঠাতে জিমেইলের smtp সার্ভার ব্যবহার করে। SMTP অবজেক্টটি 527 পোর্টে gmail এর smtp সার্ভার ব্যবহার করে। ehlo() কমান্ড সার্ভারটিকে সনাক্ত করে। আমরা বহির্গামী মেল বার্তায় ট্রান্সপোর্ট লেয়ার সিকিউরিটিও সক্রিয় করি।

এরপরে, login() কমান্ডটি আর্গুমেন্ট হিসাবে শংসাপত্র পাস করার মাধ্যমে আহ্বান করা হয়। অবশেষে মেইল ​​বার্তাটিকে নির্ধারিত ফরম্যাটে একটি হেডার সংযুক্ত করে একত্রিত করা হয় এবং এটি sendmail() পদ্ধতি ব্যবহার করে পাঠানো হয়। SMTP অবজেক্টটি পরে বন্ধ হয়ে যায়।

import smtplib
content="HelloWorld"
mail=smtplib.SMTP('smtp.gmail.com',587)
mail.ehlo()
mail.starttls()
sender='pythonanytime@gmail.com'
recipient='mlathkar@gmail.com'
mail.login('pythonanytime@gmail.com','m15v5l61')
header='To:'+receipient+'\n'+'From:'\
+sender+'\n'+'subject:testmail\n'
content=header+content
mail.sendmail(sender,recipient, content)
mail.close()


উপরের স্ক্রিপ্ট চালানোর আগে, নিশ্চিত করুন যে প্রেরকের জিমেইল অ্যাকাউন্ট 'কম সুরক্ষিত অ্যাপস'-এ অ্যাক্সেস দেওয়া হয়েছে।

https://myaccount.google.com/lesssecureapps

দেখানো টগল বোতামটি চালু করুন।

পাইথনে SMTP প্রোটোকল ক্লায়েন্ট (smtplib)

উপরের সেটিং করার পর উপরের স্ক্রিপ্টটি চালান। বার্তাটি প্রাপকের ইনবক্সে পৌঁছে দেওয়া উচিত৷


  1. পাইথনে নিম্ন-স্তরের নেটওয়ার্কিং ইন্টারফেস (সকেট)

  2. পাইথন ব্যবহার করে আপনার জিমেইল অ্যাকাউন্ট থেকে মেইল ​​পাঠান

  3. এসএমটিপি মেল পাঠানোর জন্য কীভাবে ওয়ার্ডপ্রেস কনফিগার করবেন

  4. ডিফল্ট মেল ক্লায়েন্ট হিসাবে Outlook কিভাবে সেট করবেন