পাইথনের স্ট্যান্ডার্ড লাইব্রেরিতে '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='[email protected]' recipient='[email protected]' mail.login('[email protected]','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
দেখানো টগল বোতামটি চালু করুন।
উপরের সেটিং করার পর উপরের স্ক্রিপ্টটি চালান। বার্তাটি প্রাপকের ইনবক্সে পৌঁছে দেওয়া উচিত৷
৷