এই আর্টিকেলে লিনাক্স কমান্ড লাইন/শেল থেকে ইমেইল পাঠানোর কয়েকটি পদ্ধতি দেখানো হবে – য عاش Bash/Shell স্ক্রিপ্ট থেকে।
কেন আপনি কমান্ড লাইন থেকে ইমেইল পাঠাতে চাবেন? সম্ভবত যোগাযোগের জন্য নয় – অধিকাংশ মানুষ দিন দিনে একে অপরকে মেসেজ পাঠাতে একটি নাইস ইউজার ইন্টারফেস সহ ইমেইল ক্লায়েন্ট ব্যবহার করে – কিন্তু আপনি চাইতে পারেন আপনার কম্পিউটার একটি টাস্ক কমপ্লিট হলে বা কোনো ইভেন্ট হলে ইমেইল নোটিফিকেশন পাঠাবে।
এমন ইমেইল অ্যালার্ট সাধারণত লো ডিস্ক স্পেসে অ্যালার্ট দেওয়ার জন্য বা কেউকে নোটিফাই করার জন্য ব্যবহৃত হয় যদি কোনো এরর হয়, পাওয়ার चला যায় – আপনি এমন একটি নোটিফিকেশন লিখতে পারেন যা আপনার লেটেস্ট অ্যাপের ডেইলি নিউ ইউজার সাইনআপের সার্মারি দিবে। এখানে কিছু টুল দেওয়া হলো যা আপনাকে এটা করতে দেবে – উদাহরণসহ।
মেইল পাঠানোর ऊपर একটি নোট
এই আর্টিকেলের সব উদাহরণ ধরে নেবে আপনি এক্সটার্নাল SMTP সার্ভার ব্যবহার করছেন মেইল পাঠাতে। এটি হতে পারে একটি ডেডিকেটেড ইমেইল সেন্ডিং সার্ভিস যেমন Amazon SES বা MailGun, অথবা আপনি আপনার অনলাইন ইমেইল প্রোভাইডার (Gmail, Outlook.com) থেকে SMTP ডিটেইলস ব্যবহার করে মেইল পাঠাতে পারেন।
এই আর্টিকেলে আপনার নিজস্ব SMTP হোস্ট থেকে সরাসরি মেইল সেটআপ ও পাঠানো কভার করা হয়নি এক সিম্পল কারণেই – আপনার মেসেজগুলো ব্লক হয়ে যাওয়ার সম্ভাবনা বেশি যদি সেগুলো রেসিডেনশিয়াল IP অ্যাড্রেস থেকে আসে, এবং আপনি কঠিনাই অনুভব করবেন ট্রাবলশুটিং-এ যে আপনার ইমেইল অ্যালার্টগুলো কাজ করছে কিনা এবং ব্লক হচ্ছে কিনা, অথবা শুধু কাজ করছে না।
সঠিক প্রোগ্রাম নির্বাচন
ইমেইল পাঠাতে অনেক সফ্টওয়্যার প্যাকেজ আছে – অনেক বেশি। আমি সেগুলো সব কভার করার চেষ্টা করবো না – আপনি এখানে কিছু ऐसा খুঁজছেন যা শুধু কাজ করে, তাই…
MSMTP এই কাজের জন্য একটি আদর্শ টুল, তাই এই আর্টিকেলের ফোকাস থাকবে কীভাবে সেই প্রোগ্রামটি ব্যবহার করতে হয়।
পূর্বে, SSMTP আমার পছন্দের পছন্দ ছিল, কিন্তু সেই প্যাকেজের ডেভেলপমেন্ট বন্ধ হয়েছে – MSMTP একটি ভালো রিপ্লেসমেন্ট।
অন্যান্য অপশন অন্তর্ভুক্ত sendmail, mail, এবং mutt কমান্ড। সব কাজ করবে, কিন্তু MSMTP ব্যবহার করা সহজ এবং কনফিগার করা সহজ এবং একটি স্বতন্ত্র কনফিগারেশন মেইনটেইন করতে পারে যা সিস্টেম মেইল সাথে ইন্টারফিউর করবে না।
MSMTP ব্যবহার করে ইমেইল পাঠানো
MSMTP একটি প্রোগ্রাম যা ইমেইল পাঠায় (এবং শুধু) ইমেইল পাঠায় – যা Bash স্ক্রিপ্ট থেকে ইমেইল পাঠানোর জন্য পারফেক্ট।
একবার আপনি MSMTP ইনস্টল করলে, ইউজার ম্যানুয়াল রান করে দেখতে পারেন:
man msmtp
MSMTP ইনস্টল করুন
Debian/Ubuntu-ভিত্তিক সিস্টেমে, নিচের কমান্ডগুলো রান করে প্রয়োজনীয় MSMTP প্যাকেজ এবং ca-certificates প্যাকেজ ইনস্টল করুন যদি এটি ইতিমধ্যে ইনস্টল করা না থাকে:
sudo apt update sudo apt install msmtp ca-certificates
sudo কমান্ডটি এই আর্টিকেলে রুট/অ্যাডমিনিস্ট্রেটিভ প্রিভিলেজ দিয়ে কমান্ড রান করতে ব্যবহৃত হয়েছে।
MSMTP কনফিগার করুন
MSMTP পের-ইউজার কনফিগারেশন বা গ্লোবাল সিস্টেম কনফিগারেশন সাপোর্ট করে – আমরা এটি গ্লোবাল কনফিগারেশন দিয়ে সেটআপ করব যাতে সব সার্ভিস MSMTP ব্যবহার করে ইমেইল পাঠাতে পারে।
MSMTP একটি উদাহরণ কনফিগারেশন ফাইল দিয়ে আসে যা আমরা টেমপ্লেট হিসেবে ব্যবহার করতে পারি – আমাদের /etc/ ফোল্ডারে এর একটি কপি বানাতে হবে ব্যবহারের জন্য:
sudo cp /usr/share/doc/msmtp/examples/msmtprc-system.example /etc/msmtprc
nano টেক্সট এডিটর ব্যবহার করে কনফিগারেশন ফাইল এডিট করুন:
sudo nano /etc/msmtprc
এখন, আপনি যে SMTP সার্ভার ব্যবহার করবেন ইমেইল পাঠাতে তার ডিটেইলস ফিল আপ করুন। আপনি কয়েকটি মেইল একাউন্ট ডিফাইন করতে পারেন আপনি যদি বিভিন্ন সার্ভার বা ঠিকানা থেকে পাঠাতে চান।
নিচে দুটি Gmail ঠিকানা সহ একটি নমুনা কনফিগারেশন দেওয়া হলো:
# Set default values for all following accounts. defaults auth on tls on tls_trust_file /etc/ssl/certs/ca-certificates.crt logfile ~/.msmtp.log # Gmail 1 account gmail1 host smtp.gmail.com port 587 from admin@wsxdn.com user username1 password password1 # Gmail 2 account gmail2 host smtp.gmail.com port 587 from admin@wsxdn.com user username2 password password2 # Set a default account account default : gmail1
ফাইলটি সংরক্ষণ করুন – MSMTP ব্যবহার করার জন্য প্রস্তুত।
একটি ইমেইল পাঠান
একবার MSMTP সেটআপ হয়ে গেলে, আপনি প্রস্তুত। MSMTP থেকে ইমেইল পাঠাতে কোনো অতিরিক্ত সফ্টওয়্যার প্রয়োজন নেই – আপনি সোজা printf কমান্ড ব্যবহার করে আপনার ইমেইল কনস্ট্রাক্ট করতে পারেন এবং msmtp কমান্ডে পাইপ করতে পারেন:
printf "Subject: Testing\nHello there!." | msmtp -a gmail2 admin@wsxdn.com
"Subject: Testing\nHello there!." – এটি হলো ইমেইল যা পাঠানো হবে। একটি সাবজেক্ট ডিফাইন করা হয়েছে Subject: এর পরে সাবজেক্ট টেক্সট। \n একটি নিউ লাইন ডিফাইন করে, যা এরপর ফলো করে ইমেইল বডি টেক্সট। অতিরিক্ত \n নিউলাইন যোগ করা যাবে প্রয়োজন অনুযায়ী একটি প্লেইন টেক্সট মেসেজ ফরম্যাটিং সহ কনস্ট্রাক্ট করতে।
-a অপশনটি ব্যবহার করা হয়েছে সেট করতে কোন ইমেইল একাউন্ট থেকে ইমেইল পাঠানো হবে – যদি সেট না করা হয়, ডিফল্টটি ব্যবহার হবে।
Mutt ব্যবহার করে অ্যাটাচমেন্টসহ ইমেইল পাঠান
অ্যাটাচমেন্টসহ ইমেইল পাঠানো একটু ট্রিকি – এডিশনাল সফ্টওয়্যার প্রয়োজন এটা সহজ করতে। mutt একটি ইমেইল ক্লায়েন্ট যা এই ফাংশনালিটি যোগ করে মিনিমাম ঝামেলার সাথে স্ক্রিপ্টে ব্যবহারের জন্য।
রান করে ইনস্টল করুন:
sudo apt install mutt
mutt Postfix মেইল ট্রান্সফার এজেন্ট ডিপেন্ডেন্সি হিসেবে ইনস্টল করতে পারে – এটি মেইল কনফিগারেশনের জন্য জিজ্ঞেস করবে। আপনি নিরাপদে No configuration বেছে নিতে পারেন – আমাদের postfix কনফিগার করার প্রয়োজন নেই। যেমন আগে এই আর্টিকেলে বলা হয়েছে, আমরা এই সিস্টেম থেকে সরাসরি মেইল পাঠাতে চাই না কারণ স্প্যাম ফিল্টারিংয়ের কারণে সেটি গন্তব্যে পৌঁছানোর চান্স কম।
MSMTP-এর মত, mutt-এর পের-ইউজার এবং গ্লোবাল কনফিগারেশন রয়েছে। আমরা গ্লোবাল কনফিগারেশন ব্যবহার করব যাতে সব ইউজার/সার্ভিস অ্যাটাচমেন্টসহ মেইল পাঠাতে পারে। nano টেক্সট এডিটর ব্যবহার করে ফাইল তৈরি ও এডিট করুন রান করে:
nano /etc/muttrc
নিচের কনফিগারেশন এন্টার করুন (ভ্যালুগুলো আপনার নিজস্ব মেইল কনফিগারেশন থেকে রিপ্লেস করে):
set sendmail="/usr/bin/msmtp" set use_from=yes set realname="Your Name" set admin@wsxdn.com set envelope_from=yes
mutt এখন কনফিগারড এবং অ্যাটাচমেন্টসহ ইমেইল পাঠাতে ব্যবহার করা যাবে:
mutt -a attachment.txt -s "My Subject" -- admin@wsxdn.com < "Email message body"
পের-ইউজার vs. গ্লোবাল কনফিগারেশন
উপরে, গ্লোবাল কনফিগারেশন ডিফাইন করা হয়েছে। আপনি যদি চান কনফিগারেশনটি শুধু নির্দিষ্ট ইউজারদের জন্য প্রযোজ্য হোক – যাতে প্রতিটি ইউজার শুধু নিজের একাউন্ট থেকে পাঠাতে পারে, উদাহরণস্বরূপ – কনফিগারেশন নিচের ফাইলগুলিতে ইউজারের হোম ডিরেক্টরিতে রাখুন:
~/.msmtprc ~/.muttrc