Kami akan secara khusus membahas ini untuk Ubuntu dan Windows 8.1, dengan Gmail yang digunakan sebagai server email yang dikirim dari email. Jika Anda memiliki versi Linux atau Windows lain, atau lebih suka menggunakan beberapa layanan email lainnya, petunjuk di sini harus mudah disesuaikan.
Email Otomatis di Linux
Kami akan menggunakan dua paket berbeda untuk mencapai ini, ssmtp dan mailutils, jadi instal keduanya dengan perintah berikut:
$ sudo apt-get install ssmtp mailutils
Setelah itu dipasang, kita perlu membuat beberapa perubahan pada file konfigurasi SSMTP:
$ sudo vi /etc/ssmtp/ssmtp.conf
Edit file dengan perubahan ini (aman untuk menghapus semua teks dalam file dan menyalin / menempel pengaturan ini, jika Anda mau):
# 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
Setelah selesai mengedit file, Anda ingin mengubah izin karena kata sandi Gmail Anda disimpan dalam plaintext.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Akan selalu lebih aman untuk menjadikan root sebagai pemilik file, tetapi kemudian kita harus menggunakan perintah sudo dalam skrip kita dan itu akan meminta kita untuk memasukkan kata sandi, dengan demikian mengalahkan tujuan mengotomatiskan seluruh proses ini.
Jika Anda menggunakan server bersama dan khawatir tentang kata sandi Anda disimpan dalam plaintext dan dapat dibaca oleh root, buat akun Gmail kosong atau gunakan server email yang tidak memerlukan jenis otentikasi apa pun di tempat pertama.
Untuk memastikan semuanya sudah dikonfigurasi dengan benar, mari coba email percobaan:
$ echo 'Testing' | mail -s 'Testing mail setup' [email protected]
"Pengujian" akan berada di badan email dan subjek akan "Menguji penyiapan email." Periksa email Anda untuk memastikan Anda menerimanya.
Menulis Naskah untuk Email
Sekarang kami dapat mengirim email dari baris perintah, mari tulis skrip yang akan mengirimkan kepada kami beberapa informasi dasar tentang sistem kami.
#!/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
Tentunya Anda bisa mendapatkan lebih banyak dengan skrip Anda dan bahkan membuat formatnya sedikit lebih bagus, tapi inilah yang tampak seperti di email kami:
$ crontab -e
Untuk email 2:00 pagi, tambahkan:
0 2 * * * /home/geek/script.sh
Kami telah menulis seluruh artikel tentang file crontab jika Anda memerlukan bantuan lebih lanjut dengan bagian ini.
Email Otomatis di Windows
Mengirim email pada baris perintah dimungkinkan melalui PowerShell, tetapi kami telah menemukan bahwa menerapkan fungsi ini jauh lebih mudah dengan aplikasi pihak ketiga, terutama ketika menggunakan Gmail. SendEmail adalah program gratis yang tersedia untuk Windows yang membuat integrasi dengan Windows Task Scheduler dan Gmail menjadi mudah. Klik tautan di atas untuk mengunduh salinan terbaru, dan pastikan Anda mengambil versi yang didukung TLS.
Setelah Anda mengunduh SendEmail, ekstrak file zip dan tempatkan konten di suatu tempat yang dapat Anda simpan selama Anda berencana untuk mengirim email otomatis. Dalam contoh ini, kami hanya akan menyimpan program di C: SendEmail
Mari kita uji SendEmail untuk mengetahui cara kerjanya. Buka prompt perintah dengan mengetikkan cmd ke menu Mulai atau Jalankan (Ctrl + R).
cd C:SendEmail
Sekarang kita dapat mencoba mengirim email percobaan dengan perintah berikut:
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.'
Tentunya, ganti "nama pengguna" dan "kata sandi" dengan kredensial akun Anda sebelum menjalankan perintah.
Inilah yang sebenarnya dilakukan oleh perintah di atas:
sendEmail
menjalankan program.
-f
- dari alamat
-t
- untuk alamat
-s
- Server SMTP
-xu
- username akun
-xp
- kata sandi akun
-u
- Subjek email
-m
- Teks isi email
Periksa kotak masuk Anda untuk memastikan Anda menerima email tes, dan kemudian kita dapat melanjutkan dengan menulis skrip yang akan mengirimkan informasi server kepada kami.
Menulis Naskah untuk Email
Untuk mendapatkan hasil maksimal dari skrip kami, kami akan menuliskannya untuk PowerShell. Buka Windows PowerShell ISE dengan mengetik powershell_ise.exe ke prompt 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
Dalam skrip ini, berbagai informasi dikeluarkan ke C: SendEmail info.txt, dan kemudian teks dalam dokumen itu diemail kepada kami sebelum dihapus. Simpan skrip Anda dengan ekstensi file ps1 (file PowerShell).
Setelah skrip Anda selesai, jalankan uji cepat dari perintah Jalankan untuk memastikannya berfungsi dengan benar.
Cukup gunakan
powershell
perintah dengan
-file
argumen dan tentukan jalur ke skrip Anda.
powershell -file 'c:SendEmaildaily-email.ps1'
Setelah Anda menyelesaikan masalah dalam skrip Anda, Anda dapat menggunakan Penjadwal Tugas Windows untuk mengotomatiskannya. Buka Windows Task Scheduler melalui menu Start.
Sekarang Anda harus berada di bagian "Action" dari wizard, pilih "Start a Program" dan masukkan teks yang sama yang kami masukkan ke dalam perintah Jalankan sebelumnya untuk menguji skrip kami.