Speciálisan ezt az Ubuntu és a Windows 8.1 verziót fogjuk lefedni, mivel a Gmailt e-mail kiszolgálóként használják, hogy a leveleket elküldjük. Ha van egy másik Linux vagy Windows verziója, vagy inkább egy másik e-mail szolgáltatást szeretne használni, az itt található utasításoknak könnyen alkalmazkodniuk kell.
Automatizált e-mailek Linux alatt
Két különböző csomagot fogunk használni ehhez: ssmtp és mailutils, ezért telepítsd mindkettőt a következő paranccsal:
$ sudo apt-get install ssmtp mailutils
Miután telepítve van, módosítani kell az SSMTP konfigurációs fájlt:
$ sudo vi /etc/ssmtp/ssmtp.conf
Szerkesztheti a fájlt ezekkel a változtatásokkal (biztonságosan törölheti a fájlban lévő összes szöveget, és ha szeretné, másolja / illessze be ezeket a beállításokat):
# 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
Ha elkészült a fájl szerkesztése, módosítani szeretné az engedélyeket, mivel Gmail-jelszavát szöveges formában tárolja.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Mindig biztonságosabb a fájl tulajdonosának gyökeresedése, de a szkriptben a sudo parancsot kell használnunk, és felszólítaná nekünk egy jelszót, ezáltal lefutva az egész folyamat automatizálását.
Ha megosztott kiszolgálót használ, és aggódik amiatt, hogy a jelszavát szöveges formában tárolja és gyökéren olvashatja, hozzon létre egy eldobható Gmail-fiókot, vagy olyan e-mail szervert használjon, amely nem igényel semmilyen típusú hitelesítést.
Annak érdekében, hogy minden rendben legyen beállítva, próbáljuk meg a tesztüzeneteket:
$ echo 'Testing' | mail -s 'Testing mail setup' [email protected]
A "tesztelés" az e-mailek testében jelenik meg, és a téma "A postai beállítás ellenőrzése" lesz. Ellenőrizze az e-mail címét, hogy megbizonyosodjon arról, hogy megkapta.
Szkript írása az e-mailekhez
Most, hogy képesek vagyunk küldeni e-maileket a parancssorból, írjunk egy parancsfájlt, amely elküldi nekünk néhány alapvető információt a rendszerünkről.
#!/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
Nyilvánvaló, hogy sokkal részletesebben beszerezheti a forgatókönyvet, és még a formázást is kicsit szebbé teheti, de ez az, amit a kimenet az e-mailünkben néz ki:
$ crontab -e
2:00 AM e-mailekhez adjon hozzá:
0 2 * * * /home/geek/script.sh
Teljes cikket írtunk a crontab fájlokról, ha további segítségre van szükségünk ezzel a részvel kapcsolatban.
Automata e-mailek a Windows rendszerben
Az e-mailek küldése a parancssorban a PowerShell segítségével lehetséges, de azt tapasztaltuk, hogy a funkciók végrehajtása sokkal könnyebb a harmadik féltől származó alkalmazásoknál, különösen a Gmail használatakor. A SendEmail egy ingyenes Windows program, amely a Windows Task Schedulerrel és a Gmail-szel való integrációt megkönnyíti. A fenti linkre kattintva letöltheti a legújabb példányt, és győződjön meg róla, hogy megragadja a TLS által támogatott verziót.
Miután letöltötte a SendEmail programot, húzza ki a zip fájlt, és tegye a tartalmat valahová, amíg tárolhatja őket, amíg automatizált e-maileket kíván küldeni. Ebben a példában a programot a C: SendEmail programban tároljuk
Próbáljuk kipróbálni a SendEmail-t, hogy gyorsan érzékeljük, hogyan működik. Nyissa meg a parancssorból a cmd parancsot a Start vagy a Futtatás (Ctrl + R) menübe.
cd C:SendEmail
Most megpróbálhatjuk elküldeni egy tesztüzenetet a következő paranccsal:
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.'
Nyilvánvalóan a parancs végrehajtása előtt cserélje ki a "felhasználónevét" és a "jelszavát" a fiók hitelesítő adataival.
Íme, amit a fenti parancs ténylegesen tesz:
sendEmail
végrehajtja a programot.
-f
- a címről
-t
- címzés
-s
- SMTP szerver
-xu
- fiók felhasználónevét
-xp
- fiók jelszava
-u
- email tárgy
-m
- e-mail szövege
Ellenőrizze a beérkező leveleket, hogy megbizonyosodjon arról, hogy megkapta a tesztüzeneteket, majd folytathatjuk a parancsfájl írását, amely elküldi a kiszolgáló adatait.
Szkript írása az e-mailekhez
Annak érdekében, hogy a lehető legtöbbet hozhassuk ki a forgatókönyvünkből, a PowerShellre írjuk. Nyissa meg a Windows PowerShell ISE-t, ha a powershell_ise.exe parancsot egy parancssorba (Ctrl + R) írja be.
# 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
Ebben a szkriptben különböző információkat küldenek a C: SendEmail info.txt fájlba, majd a dokumentum szövegét e-mailben elküldjük nekünk, mielőtt törölni fog. Mentse el a szkriptet egy PS1 kiterjesztéssel (PowerShell fájl).
A szkript befejezése után futtasson egy gyors tesztet a Run parancsból, hogy megbizonyosodjon róla, hogy megfelelően működik.
Csak használja a
powershell
parancs a
-file
argumentumot, és adja meg a parancsfájl elérési útját.
powershell -file 'c:SendEmaildaily-email.ps1'
Miután kidolgozta a parancsfájlban lévő hibákat, a Windows Task Scheduler segítségével automatizálhatja azt. Nyissa meg a Windows Task Scheduler programot a Start menüben.
Most a varázsló "Akció" részének kell lennie, válassza a "Program indítása" pontot, és írja be ugyanazt a szöveget, amelyet előzőleg a Futtatás parancsra írtunk be a parancsfájl teszteléséhez.