हम विशेष रूप से उबंटू और विंडोज 8.1 के लिए इसे कवर करेंगे, जीमेल का उपयोग ईमेल सर्वर के रूप में किया जा रहा है, जिससे मेल भेजा जाता है। यदि आपके पास लिनक्स या विंडोज का एक और संस्करण है, या किसी अन्य ईमेल सेवा का उपयोग करना पसंद करते हैं, तो यहां निर्देश आसानी से अनुकूलनीय होना चाहिए।
लिनक्स में स्वचालित ईमेल
हम इसे, एसएसएमटीपी और मेलुटिल्स को पूरा करने के लिए दो अलग-अलग पैकेजों का उपयोग करने जा रहे हैं, इसलिए निम्न दोनों को निम्न आदेश के साथ स्थापित करें:
$ sudo apt-get install ssmtp mailutils
एक बार इंस्टॉल होने के बाद, हमें एसएसएमटीपी कॉन्फ़िगरेशन फ़ाइल में कुछ बदलाव करने की आवश्यकता है:
$ sudo vi /etc/ssmtp/ssmtp.conf
इन परिवर्तनों के साथ फ़ाइल को संपादित करें (फ़ाइल में सभी टेक्स्ट को मिटाना सुरक्षित है और यदि आप चाहें तो इन सेटिंग्स को कॉपी / पेस्ट करें):
# This address will receive the emails, so enter your own email here if you want to receive them.
# Specify the email server here (leave as is if you’re using Gmail).
mailhub=smtp.gmail.com:587
# The domain name that the mail will come from.
rewriteDomain=gmail.com
# The email address that these emails should be from.
# SSL/TLS settings, required for Gmail and most other mail servers.
UseTLS=Yes
UseSTARTTLS=Yes
# The username and password to your Gmail account.
AuthUser=username
AuthPass=password
# Allow the ability to specify a from address different than the one above.
FromLineOverride=yes
जब आप फ़ाइल को संपादित कर लेते हैं, तो आप अनुमतियों को बदलना चाहेंगे क्योंकि आपका जीमेल पासवर्ड सादे टेक्स्ट में संग्रहीत है।
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
फाइल के मालिक को रूट बनाने के लिए हमेशा अधिक सुरक्षित होता है, लेकिन फिर हमें अपनी स्क्रिप्ट में सुडो कमांड का उपयोग करना होगा और यह हमें पासवर्ड के लिए संकेत देगा, जिससे इस पूरे प्रक्रिया को स्वचालित करने के उद्देश्य को हराया जा सकेगा।
यदि आप एक साझा सर्वर का उपयोग कर रहे हैं और सादे टेक्स्ट में संग्रहीत किए जा रहे पासवर्ड और रूट द्वारा पठनीय होने के बारे में चिंतित हैं, तो एक फेंक दिया जीमेल खाता बनाएं या एक ईमेल सर्वर का उपयोग करें जिसे किसी भी प्रकार के प्रमाणीकरण की आवश्यकता नहीं है।
यह सुनिश्चित करने के लिए कि सब कुछ सही तरीके से कॉन्फ़िगर किया गया है, आइए एक परीक्षण ईमेल आज़माएं:
$ echo 'Testing' | mail -s 'Testing mail setup' [email protected]
"परीक्षण" ईमेल के शरीर में होगा और विषय "मेल सेटअप परीक्षण" होगा। यह सुनिश्चित करने के लिए कि आप इसे प्राप्त कर चुके हैं, अपना ईमेल देखें।
ईमेल के लिए एक स्क्रिप्ट लिखना
अब जब हम कमांड लाइन से ईमेल भेज सकते हैं, तो हम एक स्क्रिप्ट लिखें जो हमें हमारे सिस्टम के बारे में कुछ बुनियादी जानकारी भेजेगी।
#!/bin/bash
# Check hard drive space
echo 'Hard drive space:' > /home/geek/email.txt
df -h >> /home/geek/email.txt
# List the users that are logged in
echo 'Users currently logged in:' >> /home/geek/email.txt
who >> /home/geek/email.txt
# List currently running processes
echo 'Running processes:' >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Send the email
cat /home/geek/email.txt | mail -s 'Daily server information' [email protected]
# Delete the file we created
rm /home/geek/email.txt
जाहिर है आप अपनी स्क्रिप्ट के साथ बहुत अधिक गहराई से प्राप्त कर सकते हैं और स्वरूपण को थोड़ा अच्छा बना सकते हैं, लेकिन यह हमारे ईमेल में आउटपुट जैसा दिखता है:
$ crontab -e
2:00 बजे ईमेल के लिए, जोड़ें:
0 2 * * * /home/geek/script.sh
अगर आपको इस हिस्से के साथ और मदद की ज़रूरत है तो हमने crontab फ़ाइलों पर एक संपूर्ण लेख लिखा है।
विंडोज़ में स्वचालित ईमेल
कमांड लाइन पर ईमेल भेजना PowerShell के माध्यम से संभव है, लेकिन हमने पाया है कि इस कार्यक्षमता को कार्यान्वित करना तीसरे पक्ष के ऐप्स के साथ बहुत आसान है, खासकर जीमेल का उपयोग करते समय। SendEmail विंडोज के लिए एक मुफ़्त प्रोग्राम उपलब्ध है जो विंडोज टास्क शेड्यूलर और जीमेल के साथ एकीकरण बनाता है। नवीनतम प्रति डाउनलोड करने के लिए उपरोक्त लिंक पर क्लिक करें, और सुनिश्चित करें कि आप टीएलएस-समर्थित संस्करण को पकड़ लें।
एक बार जब आप SendEmail डाउनलोड कर लेंगे, तो ज़िप फ़ाइल निकालें और सामग्री को कहीं भी रखें ताकि आप उन्हें तब तक स्टोर कर सकें जब तक आप स्वचालित ईमेल भेजने की योजना बनाते हैं। इस उदाहरण में, हम सिर्फ सी: SendEmail में प्रोग्राम को स्टोर करने जा रहे हैं
चलो यह कैसे काम करता है इसके लिए एक त्वरित महसूस करने के लिए SendEmail का परीक्षण करें। स्टार्ट या रन (Ctrl + R) मेनू में cmd टाइप करके कमांड प्रॉम्प्ट खोलें।
cd C:SendEmail
अब हम निम्न आदेश के साथ एक परीक्षण ईमेल भेजने का प्रयास कर सकते हैं:
sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp password -u 'Test email subject' -m 'This is a test email.'
जाहिर है, आदेश निष्पादित करने से पहले अपने खाता प्रमाण-पत्र के साथ "उपयोगकर्ता नाम" और "पासवर्ड" को प्रतिस्थापित करें।
वास्तव में ऊपर दिया गया आदेश वास्तव में क्या करता है:
sendEmail
कार्यक्रम निष्पादित करता है।
-f
- इस पते से
-t
- पता करने के लिए
-s
- एसएमटीपी सर्वर
-xu
- खाता उपयोगकर्ता नाम
-xp
- खाता पासवर्ड
-u
- ईमेल विषय
-m
- ईमेल बॉडी टेक्स्ट
यह सुनिश्चित करने के लिए अपने इनबॉक्स को जांचें कि आपको परीक्षण ईमेल प्राप्त हुआ है, और फिर हम एक स्क्रिप्ट लिखने के लिए आगे बढ़ सकते हैं जो हमें सर्वर की जानकारी भेज देगा।
ईमेल के लिए एक स्क्रिप्ट लिखना
हमारी लिपि से अधिक लाभ उठाने के लिए, हम इसे PowerShell के लिए लिखने जा रहे हैं। Powerhell_ise.exe को रन प्रॉम्प्ट (Ctrl + R) में टाइप करके Windows PowerShell ISE खोलें।
# Check hard drive space
echo 'C: Drive Usage:' > C:SendEmailinfo.txt
Get-WmiObject win32_LogicalDisk -Filter 'DeviceID='C:'' | Select-Object Size,FreeSpace >> C:SendEmailinfo.txt
# List currently running processes
echo 'Running processes:' >> C:SendEmailinfo.txt
get-process >> C:SendEmailinfo.txt
# List the files/folders currently being shared
echo 'SMB shares:' >> C:SendEmailinfo.txt
get-smbshare >> C:SendEmailinfo.txt
# Send the email
type C:SendEmailinfo.txt | C:SendEmailsendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp password -u 'Daily server info'
# Delete the file we made
rm C:SendEmailinfo.txt
इस स्क्रिप्ट में, सी: SendEmail info.txt पर विभिन्न जानकारी आउटपुट की जाती है, और तब उस दस्तावेज़ में टेक्स्ट को हटाए जाने से पहले हमें ईमेल किया जाता है। अपनी स्क्रिप्ट को एक ps1 फ़ाइल एक्सटेंशन (PowerShell फ़ाइल) से सहेजें।
अपनी स्क्रिप्ट समाप्त होने के साथ, यह सुनिश्चित करने के लिए कि यह ठीक से काम कर रहा है, रन रन से त्वरित परीक्षण चलाएं।
बस का प्रयोग करें
powershell
एक के साथ आदेश
-file
तर्क और अपनी स्क्रिप्ट के लिए पथ निर्दिष्ट करें।
powershell -file 'c:SendEmaildaily-email.ps1'
एक बार जब आप अपनी स्क्रिप्ट में कंकों को काम कर लेंगे, तो आप इसे स्वचालित करने के लिए विंडोज टास्क शेड्यूलर का उपयोग कर सकते हैं। स्टार्ट मेनू के माध्यम से विंडोज़ टास्क शेड्यूलर खोलें।
अब आपको विज़ार्ड के "एक्शन" भाग पर होना चाहिए, "प्रोग्राम शुरू करें" का चयन करें और उसी स्क्रिप्ट को दर्ज करें जिसे हमने पहले स्क्रिप्ट का परीक्षण करने के लिए रन प्रॉम्प्ट में दर्ज किया था।
अगले हिट करें और फिर इस विंडो पर हां हिट करें: