यह लेख आपको Linux कमांड लाइन/शेल - साथ ही बैश/शेल स्क्रिप्ट से ईमेल भेजने के कई तरीके दिखाएगा।
आप कमांड लाइन से ईमेल क्यों भेजना चाहेंगे? संभवत:संवाद करने के लिए नहीं - अधिकांश लोग एक दूसरे को दिन-प्रतिदिन संदेश भेजने के लिए एक अच्छे यूजर इंटरफेस के साथ एक ईमेल क्लाइंट का उपयोग करते हैं - लेकिन आप चाहते हैं कि आपका कंप्यूटर कोई कार्य पूरा होने पर या कोई घटना होने पर एक ईमेल सूचना भेजे।पी>
इस तरह के ईमेल अलर्ट आमतौर पर कम डिस्क स्थान पर अलर्ट करने के लिए उपयोग किए जाते हैं या किसी त्रुटि के होने पर किसी को सूचित करने के लिए उपयोग किया जाता है, बिजली चली जाती है - आप अपने नवीनतम ऐप में नए उपयोगकर्ता साइनअप का दैनिक सारांश प्रदान करने के लिए एक अधिसूचना भी लिख सकते हैं। यहां कई टूल दिए गए हैं जो आपको ऐसा करने देंगे - उदाहरणों के साथ।
मेल भेजने पर एक नोट
इस आलेख के सभी उदाहरण मान लेंगे कि आप मेल भेजने के लिए किसी बाहरी SMTP सर्वर का उपयोग कर रहे हैं। यह Amazon SES या MailGun जैसी समर्पित ईमेल भेजने वाली सेवा हो सकती है, या आप अपने ऑनलाइन ईमेल प्रदाता (Gmail, Outlook.com) से उनके द्वारा प्रदान किए गए SMTP विवरण का उपयोग करके ईमेल भेज सकते हैं।
इस लेख में एक साधारण कारण के लिए सीधे अपने स्वयं के एसएमटीपी होस्ट से मेल सेट करने और भेजने को शामिल नहीं किया गया है - यदि आपके संदेश आवासीय आईपी पते से आ रहे हैं, तो आपके संदेशों के अवरुद्ध होने की संभावना है, और आपको समस्या निवारण में कठिन समय होगा कि क्या आपके ईमेल अलर्ट सही ढंग से काम कर रहे हैं और ब्लॉक किए जा रहे हैं, या काम नहीं कर रहे हैं।
सही कार्यक्रम चुनना
कई सॉफ्टवेयर पैकेज ईमेल भेज सकते हैं - एक बड़ी संख्या। मैं उन सभी को कवर करने की कोशिश नहीं करने जा रहा हूं - आप यहां कुछ ऐसा ढूंढ रहे हैं जो बस काम करे, इसलिए…
MSMTP इस कार्य के लिए एक आदर्श उपकरण है, इसलिए मैं इस लेख का फोकस उस प्रोग्राम का उपयोग करने के तरीके पर रखूंगा।
पहले, SSMTP मेरी पसंदीदा पसंद थी, लेकिन उस पैकेज का विकास रुक गया है - MSMTP एक अच्छा प्रतिस्थापन है।
अन्य विकल्पों में शामिल हैं भेजें , मेल, और म्यूट आदेश। सभी काम करेंगे, लेकिन एमएसएमटीपी का उपयोग करना और कॉन्फ़िगर करना आसान है और एक स्वतंत्र कॉन्फ़िगरेशन बनाए रख सकता है जो सिस्टम मेल में हस्तक्षेप नहीं करेगा।
ईमेल भेजने के लिए MSMTP का उपयोग करना
MSMTP एक प्रोग्राम है जो ईमेल भेजता है (और केवल ) ईमेल भेजता है - इसे बैश स्क्रिप्ट से ईमेल भेजने के लिए एकदम सही बनाता है।
एक बार जब आप एमएसएमटीपी स्थापित कर लेते हैं, तो आप उपयोगकर्ता पुस्तिका को चलाकर देख सकते हैं:
man msmtp
एमएसएमटीपी इंस्टॉल करें
डेबियन/उबंटू-आधारित सिस्टम पर, आवश्यक MSMTP को स्थापित करने के लिए निम्न कमांड चलाएँ पैकेज और सीए-प्रमाणपत्र पैकेज अगर यह पहले से स्थापित नहीं है:
sudo apt update sudo apt install msmtp ca-certificates
सुडो इस पूरे लेख में कमांड का उपयोग रूट/प्रशासनिक विशेषाधिकारों के साथ कमांड चलाने के लिए किया जाता है।
MSMTP कॉन्फ़िगर करें
MSMTP प्रति-उपयोगकर्ता कॉन्फ़िगरेशन या एक वैश्विक सिस्टम कॉन्फ़िगरेशन का समर्थन करता है - हम इसे एक वैश्विक कॉन्फ़िगरेशन के साथ सेट करेंगे ताकि सभी सेवाएँ ईमेल भेजने के लिए MSMTP का उपयोग कर सकें।
MSMTP एक उदाहरण कॉन्फ़िगरेशन फ़ाइल के साथ आता है जिसे हम एक टेम्पलेट के रूप में उपयोग कर सकते हैं - हमें उपयोग के लिए /etc/ फ़ोल्डर में इसकी एक प्रति बनाने की आवश्यकता होगी:
sudo cp /usr/share/doc/msmtp/examples/msmtprc-system.example /etc/msmtprc
नैनो . का उपयोग करके कॉन्फ़िगरेशन फ़ाइल संपादित करें टेक्स्ट एडिटर:
sudo nano /etc/msmtprc
अब, आप उस एसएमटीपी सर्वर का विवरण भर सकते हैं जिसका उपयोग आप ईमेल भेजने के लिए करेंगे। यदि आप विभिन्न सर्वरों या पतों से भेजना चाहते हैं तो आप कई मेल खातों को परिभाषित कर सकते हैं।
नीचे दो जीमेल पतों के साथ एक नमूना विन्यास है:
# 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 [email protected] user username1 password password1 # Gmail 2 account gmail1 host smtp.gmail.com port 587 from [email protected] user username2 password password2 # Set a default account account default : gmail1
फ़ाइल सहेजें - MSMTP उपयोग के लिए तैयार है।
ईमेल भेजें
एक बार MSMTP सेट हो जाने के बाद, आप जाने के लिए तैयार हैं। MSMTP से ईमेल भेजने के लिए किसी अतिरिक्त सॉफ़्टवेयर की आवश्यकता नहीं है - आप बस printf . का उपयोग कर सकते हैं अपना ईमेल बनाने और उसे msmtp कमांड में पाइप करने का आदेश:
printf "Subject: Testing\nHello there!." | msmtp -a gmail2 [email protected]
“विषय:परीक्षण\nनमस्ते!.” - यह वह ईमेल है जिसे भेजा जाएगा। विषय: . का उपयोग करके किसी विषय को परिभाषित किया जाता है विषय पाठ के बाद। \n एक नई लाइन को परिभाषित करता है, जिसके बाद ईमेल बॉडी टेक्स्ट आता है। अतिरिक्त \n फ़ॉर्मेटिंग के साथ एक सादा पाठ संदेश बनाने के लिए आवश्यक होने पर नई पंक्तियाँ जोड़ी जा सकती हैं।
-a विकल्प का उपयोग यह सेट करने के लिए किया जाता है कि ईमेल किस ईमेल खाते से भेजा जाएगा - यदि यह सेट नहीं है, तो डिफ़ॉल्ट का उपयोग किया जाएगा।
Mutt का उपयोग करके अटैचमेंट के साथ ईमेल भेजें
अटैचमेंट के साथ ईमेल भेजना थोड़ा मुश्किल है - इसे करना आसान बनाने के लिए अतिरिक्त सॉफ़्टवेयर की आवश्यकता होती है। म्यूट एक ईमेल क्लाइंट है जो स्क्रिप्ट में उपयोग के लिए न्यूनतम उपद्रव के साथ इस कार्यक्षमता को जोड़ता है।
इसे चलाकर स्थापित करें:
sudo apt install mutt
म्यूट पोस्टफिक्स मेल ट्रांसफर एजेंट को निर्भरता के रूप में स्थापित कर सकता है - यह मेल कॉन्फ़िगरेशन के लिए पूछेगा। आप सुरक्षित रूप से कोई कॉन्फ़िगरेशन नहीं choose चुन सकते हैं - हमें कॉन्फ़िगर करने के लिए पोस्टफिक्स की आवश्यकता नहीं है। जैसा कि इस लेख में पहले उल्लेख किया गया है, हम इस प्रणाली से सीधे मेल नहीं भेजना चाहते हैं क्योंकि स्पैम फ़िल्टरिंग के कारण इसके अपने गंतव्य तक नहीं पहुंचने की संभावना है।
MSMTP की तरह, म्यूट प्रति उपयोगकर्ता और वैश्विक कॉन्फ़िगरेशन हैं। हम वैश्विक कॉन्फ़िगरेशन का उपयोग करेंगे ताकि सभी उपयोगकर्ता/सेवाएं अटैचमेंट के साथ मेल भेज सकें। नैनो . का उपयोग करके फ़ाइल बनाएं और संपादित करें पाठ संपादक चलाकर:
nano /etc/muttrc
नीचे दिया गया कॉन्फ़िगरेशन दर्ज करें (आपके स्वयं के मेल कॉन्फ़िगरेशन से बदले गए मानों के साथ):
set sendmail="/usr/bin/msmtp" set use_from=yes set realname="Your Name" set [email protected] set envelope_from=yes
म्यूट अब कॉन्फ़िगर किया गया है और इसका उपयोग अनुलग्नक के साथ ईमेल भेजने के लिए किया जा सकता है:
mutt -a attachment.txt -s "My Subject" -- [email protected] < "Email message body"
प्रति-उपयोगकर्ता बनाम वैश्विक कॉन्फ़िगरेशन
ऊपर, वैश्विक विन्यास को परिभाषित किया गया है। यदि आप चाहते हैं कि कॉन्फ़िगरेशन केवल कुछ उपयोगकर्ताओं पर लागू हो - ताकि प्रत्येक उपयोगकर्ता केवल अपने स्वयं के उपयोगकर्ता खाते से भेज सके, उदाहरण के लिए - कॉन्फ़िगरेशन को निम्न फ़ाइलों में उपयोगकर्ता होम निर्देशिका में रखें:
~/.msmtprc ~/.muttrc