Computer >> Hướng Dẫn Máy Tính >  >> Điện Thoại Thông Minh >> Linux

Cách gửi email từ command line Linux

Hướng dẫn này chỉ cách gửi email từ Linux command line và shell script, cũng như cách đính kèm file.

Linux command line rất mạnh khi bạn biết dùng. Có thể parse data, monitor process, tự động backup... Thường cần generate report và mail đi. Có thể đơn giản như thông báo backup hôm nay thành công hay thất bại. Sẽ giúp bạn bắt đầu gửi mail từ command line và trong shell script. Cũng cover gửi attachment. Bắt đầu với lệnh mail.

Lệnh mail

Test nhanh app "sendmail" đã cài và chạy đúng. Thực thi lệnh sau, thay "you@youremailid.com" bằng email của bạn:

# mail -s "Hello world" you@youremailid.com

Enter, xuống dòng mới. Nhập "This is a test from my server". Enter lại. Phím Control+D để tiếp tục. Prompt hỏi có mark copy cho địa chỉ khác không, bấm Control+D lại. Check mailbox. Lệnh gửi mail với subject "Hello world".

Để thêm nội dung body khi chạy lệnh:

# echo "This will go into the body of the mail." | mail -s "Hello world" you@youremailid.com

Nếu muốn mail đọc nội dung từ file:

# mail -s "Hello world" you@youremailid.com < /home/calvin/application.log

Các option hữu ích khác của mail:

  • -s subject (subject mail)
  • -c email-address (CC – mark copy cho email này)
  • -b email-address (BCC – blind carbon copy)

Ví dụ dùng option:

# echo "Welcome to the world of Calvin n Hobbes" | mail -s "Hello world" calvin@cnh.com -c hobbes@cnh.com -b susie.derkins@cnh.com

Dùng MUTT gửi attachment

Nhược điểm lớn của mail: không hỗ trợ attachment. mutt thì hỗ trợ. Tính năng này rất hữu ích cho script generate report/backup non-text nhỏ muốn backup nơi khác. Mutt là command line mail client hoàn chỉnh hơn mail. Khám phá cơ bản hay dùng. Cách đính kèm file:

# echo "Sending an attachment." | mutt -a backup.zip -s "attachment" calvin@cnh.com

Lệnh gửi mail đến calvin@cnh.com với subject (-s) "attachment", body "Sending an attachment.", attachment (-a) backup.zip. Giống mail, dùng "-c" để CC.

Gửi email từ Shell Script

Với cơ bản đã nắm, gửi mail từ shell script. Script đơn giản cho disk usage report mail cho bạn:

#!/bin/bash
df -h | mail -s "disk space report" calvin@cnh.com

Lưu các dòng vào file trên server Linux và chạy. Sẽ nhận mail chứa kết quả lệnh. Nếu cần gửi nhiều data hơn, ghi data vào file text rồi feed vào mail body. Ví dụ script lấy disk usage và memory usage, ghi file tạm, đưa vào body mail:

#!/bin/bash
df -h > /tmp/mail_report.log
free -m >> /tmp/mail_report.log
mail -s "disk and RAM report" calvin@cnh.com < /tmp/mail_report.log

Vấn đề phức tạp hơn: backup vài file và mail đi. Archive thư mục, gửi attachment qua mutt. Script:

#!/bin/bash
tar -zcf /tmp/backup.tar.gz /home/calvin/files
echo | mutt -a /tmp/backup.tar.gz -s "daily backup of data" calvin@cnh.com

echo đầu dòng cuối thêm dòng trống vào body mail.

Đã sẵn sàng gửi mail từ Linux command line và shell script. Đọc "man page" của mail và mutt để biết thêm option (gõ "man mail" và "man mutt"). Dùng tưởng tượng cho việc tự động gửi report cho mình.