প্রকল্প সম্পর্কে
sendsmtp হ'ল পিওর পাইথনে বাস্তবায়িত একটি ছোট কমান্ড-লাইন SMTP ক্লায়েন্ট, যার কোনো থার্ড-পার্টি ডিপেন্ডেন্সির প্রয়োজন হয় না। এটি একটি UTF-8 text/plain মেইল মেসেজ তৈরি করে তা SMTP সার্ভারে পাঠায়, যার ফলে এটি স্ক্রিপ্টেড নোটিফিকেশন, বিল্ড রিপোর্ট বা শেল থেকে কমান্ড আউটপুট ইমেইলে পাইপ করার কাজে ব্যবহারযোগ্য।
ইনস্টলেশন এবং প্রয়োজনীয়তা
প্যাকেজটি pip (python3 -m pip install --user --upgrade sendsmtp) দিয়ে ইনস্টল করা হয় এবং এর জন্য পাইথন ৩.১১ বা নতুন সংস্করণ প্রয়োজন।
মৌলিক ব্যবহার
কমান্ডটি তিনটি পজিশনাল আর্গুমেন্ট গ্রহণ করে: HOST (SMTP সার্ভারের হোস্টনাম বা IP), FROM (SMTP এনভেলাপ প্রেরক এবং From হেডার উভয় হিসেবেই ব্যবহৃত হয়) এবং TO (একটি ঠিকানা বা কমার চারপাশে কোনো স্পেস না রেখে কমা দ্বারা পৃথক করা একাধিক ঠিকানা)। একটি সাধারণ ইনভোকশনে -m দিয়ে বডি ইনলাইন এবং -s দিয়ে সাবজেক্ট পাঠানো হয় এবং সার্ভার মেসেজটি গ্রহণ করলে সাফল্যের রিপোর্ট দেওয়া হয়।
মেসেজ বডির উৎসসমূহ
বডি তিনটি উৎস থেকে আসতে পারে। -m/--message অপশনটি এটি ইনলাইন সরবরাহ করে। -i/--input অপশনটি একটি ফাইল পাথ থেকে এটি পড়ে এবং --message-এর চেয়ে এর অগ্রাধিকার বেশি; পাথটি যদি কোনো বিদ্যমান ফাইল না হয় তবে অপশনটি উপেক্ষা করা হয় এবং বডিটি --message বা stdin-এ ফিরে যায়। যদি কোনো অপশনই দেওয়া না হয়, তবে বডিটি stdin থেকে পড়া হয়: পাইপ করা ইনপুট EOF পর্যন্ত পড়া হয়, আর একটি ইন্টারঅ্যাক্টিভ টার্মিনাল এমন একটি প্রম্পট ট্রিগার করে যা শুধুমাত্র EOF সম্বলিত লাইন না পাওয়া পর্যন্ত লাইন পড়তে থাকে।
সাবজেক্ট হ্যান্ডলিং
--subject/-s স্পষ্টভাবে সাবজেক্ট সেট করে। এটি বাদ দেওয়া হলে এবং বডিটি যদি একটি Subject: লাইন দিয়ে শুরু হয়, তবে সেই লাইনটি বডি থেকে সরিয়ে ফেলা হয় এবং এর পরিবর্তে সাবজেক্ট হিসেবে ব্যবহার করা হয়।
কানেকশন সিকিউরিটি এবং পোর্ট
ক্লায়েন্টটি তিনটি মোড সমর্থন করে। প্লেইন SMTP ডিফল্টভাবে পোর্ট ২৫ ব্যবহার করে। --starttls প্লেইন টেক্সটে কানেক্ট করে এবং STARTTLS এক্সটেনশন ব্যবহার করে কানেকশন আপগ্রেড করে, যার ডিফল্ট পোর্ট ৫১৮৭। -t/--tls প্রথম বাইট থেকেই (SMTPS) ইমপ্লিসিট TLS ব্যবহার করে, যার ডিফল্ট পোর্ট ৪৬৫। দুটি TLS অপশন একে অপরের পরিপূরক নয় (মিউচুয়ালি এক্সক্লুসিভ), এবং -p/--port যেকোনো মোডে ডিফল্ট পোর্ট ওভাররাইড করে।
অথেন্টিকেশন বা প্রমাণীকরণ
-u/--username SMTP AUTH সক্ষম করে; এটি ছাড়া কোনো AUTH প্রচেষ্টা করা হয় না। --password ছাড়া কোনো ইউজারনেম দেওয়া হলে, পাসওয়ার্ডের জন্য কোনো টেক্সট দৃশ্যমান না করে (बिना-इको) ইন্টারঅ্যাক্টিভভাবে প্রম্পট করা হয়। ডকুমেন্টেশনে উল্লেখ করা হয়েছে যে এটি পছন্দনীয় কারণ কমান্ড লাইন অন্য প্রক্রিয়ার কাছে দৃশ্যমান হতে পারে এবং শেলের ইতিহাসে রেকর্ড থাকে। প্রমাণীকরণ ব্যর্থ হলে রান বাতিল হয়ে যায় এবং মেসেজ পাঠানো হয় না।
TO-এর বাইরের প্রাপকবৃন্দ
-c/--cc কার্বন-কপি প্রাপকদের যোগ করে যারা CC হেডারে প্রদর্শিত হন এবং মেসেজটি পান। -b/--bcc ব্লাইন্ড কার্বন-কপি প্রাপকদের যোগ করে যারা মেসেজটি পান কিন্তু কোনো হেডারে তালিকাভুক্ত থাকেন না। উভয়ই কমা দ্বারা পৃথক করা ঠিকানার তালিকা গ্রহণ করে।
ডায়াগনস্টিকস
-v/--verbose stderr-এ SMTP ডায়ালগ প্রিন্ট করে, কানেকশন এবং অথেন্টিকেশন ধাপগুলোর রিপোর্ট দেয়, মেসেজটি যে ঠিকানোগুলোতে পাঠানো হয়েছিল তার তালিকা দেয় এবং ব্যর্থতার ক্ষেত্রে এক লাইনের ত্রুটির পরিবর্তে সম্পূর্ণ স্ট্যাক ট্রেস দেখায়। এটি ছাড়া, ব্যর্থতার কারণে একক লাইনের ত্রুটির বার্তা তৈরি হয়।
মেসেজ হেডার এবং এক্সিট কোড
জেনারেট করা মেসেজগুলোতে From, To, Subject, CC (শুধুমাত্র --cc সহ) এবং একটি X-Mailer: sendsmtp হেডার থাকে। এক্সিট কোড 0 মানে সার্ভার প্রতিটি প্রাপকের জন্য মেসেজটি গ্রহণ করেছে, 1 কোনো ত্রুটি বা অন্তত একজন প্রাপক কর্তৃক প্রত্যাখ্যান নির্দেশ করে, এবং 130 Ctrl-C সহ ইন্টারাপ্ট সংকেত দেয়।
লাইসেন্সিং
প্রজেক্টটি MIT লাইসেন্সের অধীনে প্রকাশিত হয়েছে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.