यह लेख आपको Linux कमांड लाइन/शेल से ईमेल भेजने के कई तरीके दिखाएगा – साथ ही 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 पतों के साथ एक नमूना कॉन्फ़िगरेशन है:
# सभी निम्नलिखित अकाउंट्स के लिए डिफ़ॉल्ट मान सेट करें। 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 gmail1 host smtp.gmail.com port 587 from admin@wsxdn.com user username2 password password2 # डिफ़ॉल्ट अकाउंट सेट करें 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"
प्रति-उपयोगकर्ता बनाम ग्लोबल कॉन्फ़िगरेशन
ऊपर, ग्लोबल कॉन्फ़िगरेशन परिभाषित किए गए हैं। यदि आप कॉन्फ़िगरेशन को केवल कुछ उपयोगकर्ताओं पर लागू करना चाहते हैं – ताकि प्रत्येक उपयोगकर्ता केवल अपने स्वयं के उपयोगकर्ता खाते से भेज सके, उदाहरण के लिए – कॉन्फ़िगरेशन को उपयोगकर्ता की होम डायरेक्ट्री में निम्न फ़ाइलों में रखें:
~/.msmtprc ~/.muttrc