Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

Linux में ईमेल भेजने के लिए बैश/शैल स्क्रिप्ट - Howto, उदाहरण

यह लेख आपको 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           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


# Set a default account
account default : gmail1

फ़ाइल सहेजें - MSMTP उपयोग के लिए तैयार है।

ईमेल भेजें

एक बार MSMTP सेट हो जाने के बाद, आप जाने के लिए तैयार हैं। MSMTP से ईमेल भेजने के लिए किसी अतिरिक्त सॉफ़्टवेयर की आवश्यकता नहीं है - आप बस printf . का उपयोग कर सकते हैं अपना ईमेल बनाने और उसे msmtp कमांड में पाइप करने का आदेश:

printf "Subject: Testing\nHello there!." | msmtp -a gmail2 admin@wsxdn.com

“विषय:परीक्षण\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 admin@wsxdn.com
set envelope_from=yes

म्यूट अब कॉन्फ़िगर किया गया है और इसका उपयोग अनुलग्नक के साथ ईमेल भेजने के लिए किया जा सकता है:

mutt -a attachment.txt -s "My Subject" -- admin@wsxdn.com < "Email message body"

प्रति-उपयोगकर्ता बनाम वैश्विक कॉन्फ़िगरेशन

ऊपर, वैश्विक विन्यास को परिभाषित किया गया है। यदि आप चाहते हैं कि कॉन्फ़िगरेशन केवल कुछ उपयोगकर्ताओं पर लागू हो - ताकि प्रत्येक उपयोगकर्ता केवल अपने स्वयं के उपयोगकर्ता खाते से भेज सके, उदाहरण के लिए - कॉन्फ़िगरेशन को निम्न फ़ाइलों में उपयोगकर्ता होम निर्देशिका में रखें:

~/.msmtprc
~/.muttrc

  1. विंडोज 10 [ट्यूटोरियल] पर बैश (लिनक्स शेल) को कैसे स्थापित और उपयोग करें

    यहां बताया गया है कि विंडोज़ पर लिनक्स शेल को कैसे सेट अप करें और उसका उपयोग कैसे करें - लिनक्स के लिए विंडोज सबसिस्टम का उपयोग करके (WSL )। यह ट्यूटोरियल 2020 से विंडोज 10 के अप-टू-डेट वर्जन के लिए है। मैं विंडोज 10 के पुराने संस्करणों या विंडोज 8/7/XP/3.1 के अन्य तरीकों पर WSL का उपयोग करने के त

  1. विंडोज 10 पर लिनक्स बैश शेल कैसे स्थापित करें

    बैश शेल केवल एक कमांड-लाइन उपयोगिता है जो बहुत लंबे समय से लिनक्स का हिस्सा रही है और अब, माइक्रोसॉफ्ट ने इसे सीधे विंडोज 10 में जोड़ा है। यह न तो वर्चुअल मशीन है और न ही कोई कंटेनर या विंडोज के लिए संकलित कोई सॉफ्टवेयर। इसके बजाय, यह विंडोज़ पर एंड्रॉइड ऐप चलाने के लिए माइक्रोसॉफ्ट के बंद प्रोजेक्ट

  1. बैश स्क्रिप्टिंग परिचय ट्यूटोरियल 5 व्यावहारिक उदाहरणों के साथ

    हमारी चल रही यूनिक्स सेड और यूनिक्स Awk श्रृंखला के समान, हम बैश स्क्रिप्टिंग पर कई लेख पोस्ट करेंगे, जो सभी बैश स्क्रिप्टिंग तकनीकों को व्यावहारिक उदाहरणों के साथ कवर करेगा। शेल एक प्रोग्राम है, जो यूजर कमांड की व्याख्या करता है। कमांड या तो उपयोगकर्ता द्वारा सीधे दर्ज किए जाते हैं या शेल स्क्रिप्