Mes specialiai aptarsime tai "Ubuntu" ir "Windows 8.1", kai "Gmail" naudojamas kaip el. Pašto serveris, iš kurio siunčiamas el. Paštas. Jei turite kitą "Linux" ar "Windows" versiją arba norite naudoti kokią nors kitą el. Pašto paslaugą, čia pateiktos instrukcijos turėtų būti lengvai pritaikomos.
Automatiniai el. Laiškai "Linux"
Mes ketiname naudoti du skirtingus paketus, kad tai įvykdytų, ssmtp ir mailutils, todėl įdiekite abu iš šių komandų:
$ sudo apt-get install ssmtp mailutils
Kai jie yra įdiegti, turime atlikti tam tikrus SSMTP konfigūracijos failo pakeitimus:
$ sudo vi /etc/ssmtp/ssmtp.conf
Redaguokite failą naudodami šiuos pakeitimus (saugu paprasčiausiai ištrinti visą failo tekstą ir, jei norite, nukopijuokite / įklijuokite šiuos nustatymus):
# 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
Baigę redaguoti failą, norėsite keisti leidimus, nes jūsų "Gmail" slaptažodis bus saugomas paprastu tekstu.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Visada saugesnis yra failo savininko sukūrimas, bet tada mes turėsime naudoti komandą sudo komandoje mūsų scenarijų, o tai pareikalaus mums slaptažodžio, tokiu būdu nugalėję šio proceso automatizavimo paskirtį.
Jei naudojate bendrintą serverį ir nerimauja dėl to, kad jūsų slaptažodis saugomas paprastu tekstu ir yra įskaitomas root, sukurkite išmintingą "Gmail" paskyrą arba naudokite el. Pašto serverį, kuris pirmiausia nereikalauja jokio tipo autentifikavimo.
Norėdami įsitikinti, kad viskas tinkamai sukonfigūruota, pabandykite bandomąjį el. Laišką:
$ echo 'Testing' | mail -s 'Testing mail setup' [email protected]
"Testavimas" bus el. Laiško korpusas, o tema bus "Tikrinama pašto sąranka". Patikrinkite savo el. Paštą, kad įsitikintumėte, jog gavote.
Rašyti scenarijų laiškams
Dabar, kai mes galime siųsti el. Laiškus iš komandinės eilutės, parašyk scenarijų, kuris mums atsiųs pagrindinę informaciją apie mūsų sistemą.
#!/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
Akivaizdu, kad naudodamiesi savo scenarijais galėsite kur kas išsamiau išnagrinėti, netgi šiek tiek gražiau išversti formatavimą, bet tai, ko išeitis atrodys mūsų el. Pašto adresu:
$ crontab -e
2:00 am el. Laiškai pridėti:
0 2 * * * /home/geek/script.sh
Mes parašėme visą straipsnį apie crontab failus, jei jums reikia daugiau pagalbos šioje dalyje.
Automatizuoti el. Laiškai "Windows" sistemoje
El. Laiškų siuntimas komandinėje eilutėje galimas naudojant "PowerShell", tačiau mes nustatėme, kad trečiųjų šalių programų, ypač naudojant "Gmail", funkcijų įgyvendinimas yra daug lengvesnis. SendEmail yra nemokama programa "Windows", kuri integruojasi su "Windows Task Scheduler" ir "Gmail". Spustelėkite aukščiau esančią nuorodą, kad atsisiųstumėte naujausią kopiją ir įsitikinkite, kad patraukėte TLS palaikomą versiją.
Atsisiųskite "SendEmail", ištrauksite zip failą ir įdėsite turinį kur nors, kad galėsite jį saugoti, kol planuojate siųsti automatinius el. Laiškus. Šiame pavyzdyje mes ketiname saugoti programą C: SendEmail
Išbandykite "SendEmail", kad greitai suvoktumėte, kaip tai veikia. Atidarykite komandų eilutę, įvedę cmd į meniu Pradėti arba Vykdyti (Ctrl + R).
cd C:SendEmail
Dabar mes galime bandyti siųsti bandomąjį el. Laišką naudodami šią komandą:
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.'
Žinoma, prieš pradėdami vykdyti komandą, pakeiskite "vartotojo vardą" ir "slaptažodį" savo paskyros kredencialais.
Štai, ką iš tikrųjų daro komanda:
sendEmail
vykdo programą.
-f
- iš adreso
-t
- Adresuoti
-s
- SMTP serveris
-xu
- paskyros vartotojo vardas
-xp
- paskyros slaptažodis
-u
- elektroninio laiško tema
-m
- el. Laiško tekstas
Patikrinkite gautuosius, kad įsitikintumėte, jog gavote bandomąjį el. Laišką, o tada galėsime rašyti scenarijų, kuris atsiųs mums informaciją apie serverį.
Rašyti scenarijų laiškams
Norėdami kuo geriau išnaudoti mūsų scenarijų, mes ketiname parašyti jį "PowerShell". Atidarykite "Windows PowerShell ISE", įvesdami "powershell_ise.exe" į komandą "Vykdyti" (Ctrl + R).
# 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
Šiame scenarijuje įvairūs duomenys išvedami į C: SendEmail info.txt, o tada šiame dokumente pateiktas tekstas mums siunčiamas elektroniniu paštu prieš ištrinant. Išsaugokite scenarijų naudodami ps1 failo plėtinį (PowerShell failą).
Kai baigsite scenarijų, paleiskite greitą bandymą, kad įsitikintumėte, jog jis veikia tinkamai.
Tiesiog naudokite
powershell
komanda su a
-file
argumentas ir nurodykite savo scenarijaus kelią.
powershell -file 'c:SendEmaildaily-email.ps1'
Kai scenarijuje sukūrėte paketus, galite automatiškai jį naudoti "Windows Task Scheduler". Atidarykite "Windows Task Scheduler" per meniu "Start".
Dabar turėtumėte būti vedlio "Veiksmų" dalyje, pasirinkite "Pradėti programą" ir įveskite tą patį tekstą, kurį anksčiau įvedėme "Run prompt", kad išbandytume savo scenarijų.