Mēs to īpaši aplūkosim attiecībā uz Ubuntu un Windows 8.1, un Gmail tiek izmantots kā e-pasta serveris, no kura tiek sūtīts pasts. Ja jums ir cita Linux vai Windows versija vai arī vēlaties izmantot citu e-pasta pakalpojumu, šajā instrukcijā ir jābūt viegli pielāgojamam.
Automātiskais e-pasts sistēmā Linux
Lai veiktu šo, ssmtp un mailutils, mēs izmantosim divus dažādus pakotņus, tādēļ instalējiet tos abus ar šādu komandu:
$ sudo apt-get install ssmtp mailutils
Kad tie ir instalēti, mums ir jāveic dažas izmaiņas SSMTP konfigurācijas failā:
$ sudo vi /etc/ssmtp/ssmtp.conf
Rediģējiet failu ar šīm izmaiņām (droši vien vienkārši izdzēsiet visu failā esošo tekstu un, ja vēlaties, nokopējiet / ielīmējiet šos iestatījumus):
# 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
Kad esat pabeidzis faila rediģēšanu, jūs vēlaties mainīt atļaujas, jo jūsu Gmail parole tiek glabāta vienkāršā tekstā.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Datora īpašnieks vienmēr ir drošāks, taču tad mums vajadzētu izmantot komandu sudo mūsu skriptā, un tas liks mums paroli, tādējādi uzvarot šī procesa automatizācijas mērķi.
Ja jūs izmantojat koplietojamo serveri un uztraucaties, ka jūsu parole tiek glabāta vienkāršā tekstā un to var lasīt ar root, izveidojiet izmežģī esošo Gmail kontu vai izmantojiet e-pasta serveri, kuram vispirms nav nepieciešama autentifikācija.
Lai pārliecinātos, ka viss ir pareizi konfigurēts, mēģināsim izmēģināt e-pastu:
$ echo 'Testing' | mail -s 'Testing mail setup' [email protected]
"Tests" būs e-pasta struktūrā, un tēma tiks "Pārbaudīt pasta iestatījumus". Pārbaudiet savu e-pastu, lai pārliecinātos, vai esat saņēmis šo e-pastu.
Sarakstes rakstīšana e-pastam
Tagad, kad mēs varam sūtīt e-pastus no komandrindas, rakstiet skriptu, kas mums nosūtīs kādu pamatinformāciju par mūsu sistēmu.
#!/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
Protams, jūs varat iegūt daudz padziļinātu informāciju par savu skriptu un pat padarīt formatējumu nedaudz labāku, bet tas ir tas, kas iznākumā izskatās mūsu e-pastā:
$ crontab -e
Lai saņemtu 2:00 e-pastu, pievienojiet:
0 2 * * * /home/geek/script.sh
Mēs esam uzrakstījuši pilnu rakstu par crontab failiem, ja jums nepieciešama papildu palīdzība šajā daļā.
Automatizētās e-pastes operētājsistēmā Windows
E-pasta ziņojumu sūtīšana komandrindā ir iespējama, izmantojot PowerShell, taču mēs esam noskaidrojuši, ka šo funkciju ieviešana ir daudz vienkāršāka ar trešo pušu lietotnēm, it īpaši, izmantojot Gmail. SendEmail ir bezmaksas programma, kas pieejama Windows, kas padara integrāciju ar Windows Task Scheduler un Gmail vieglumu. Noklikšķiniet uz augstāk esošās saites, lai lejupielādētu jaunāko kopiju, un pārliecinieties, ka esat paņēmis TLS atbalstīto versiju.
Kad esat lejupielādējis SendEmail, izraksta zip failu un ievieto saturu kaut kur, ka jūs varat to uzglabāt tik ilgi, kamēr plānojat sūtīt automātiskus e-pastus. Šajā piemērā mēs vienkārši glabāsim programmu C: SendEmail
Izmēģināsim SendEmail, lai ātri uzzinātu, kā tā darbojas. Atveriet komandu uzvedni, ierakstot cmd izvēlnē Sākt vai Palaist (Ctrl + R).
cd C:SendEmail
Tagad mēs varam mēģināt sūtīt testa e-pastu ar šādu komandu:
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.'
Protams, nomainiet "lietotājvārdu" un "paroli" ar sava konta akreditācijas datiem pirms komandas izpildes.
Tālāk ir norādīts, ko iepriekš minētā komanda patiešām veic:
sendEmail
izpilda programmu.
-f
- no adreses
-t
- uz adresi
-s
- SMTP serveris
-xu
- konta lietotājvārds
-xp
- konta parole
-u
- e-pasta tēma
-m
- e-pasta pamatteksts
Pārbaudiet savu iesūtni, lai pārliecinātos, ka saņēmāt testa e-pastu, un pēc tam mēs varam turpināt rakstīt skriptu, kas nosūtīs mums informāciju par serveri.
Sarakstes rakstīšana e-pastam
Lai maksimāli izmantotu mūsu skriptu, mēs to rakstīsim PowerShell. Atveriet Windows PowerShell ISE, ierakstot powershell_ise.exe uz komandu Run (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
Šajā skriptā dažāda informācija tiek izvadīta uz C: SendEmail info.txt, un pēc tam šajā dokumentā esošais teksts mums tiek nosūtīts pa e-pastu pirms tas tiek izdzēsts. Saglabājiet savu skriptu ar faila paplašinājumu ps1 (PowerShell fails).
Kad jūsu skripts ir pabeigts, izpildiet ātru pārbaudi, lai pārbaudītu, vai tā darbojas pareizi.
Vienkārši izmantojiet
powershell
komanda ar a
-file
argumentu un norādiet ceļu uz jūsu skriptu.
powershell -file 'c:SendEmaildaily-email.ps1'
Kad esat izveidojis skriptu, varat izmantot Windows uzdevumu plānotāju, lai to automatizētu. Atveriet Windows uzdevumu plānotāju, izmantojot izvēlni Sākt.
Tagad jums vajadzētu būt vedņa sadaļā "Darbība", izvēlieties "Startēt programmu" un ievadiet to pašu tekstu, kuru mēs ievadījām ātrās palaišanas reizē, lai pārbaudītu mūsu skriptu.