Cách gửi email bằng dòng lệnh trong Linux

MAIL

Trước khi chạy một kiểm tra nhanh chóng để bảo đảm rằng ứng dụng

“sendmail”đã được cài đặt và làm việc đúng cách. Bạn hãy thực thi lệnh dưới đây,

thay thế “you@youremailid.com” bằng địa chỉ email của bạn.

# mail -s “Hello world” you@youremailid.com

Nhấn phím Enter/return, khi đó bạn sẽ được đưa tới một dòng mới. Nhập vào đoạn

văn bản “This is a test from my server”. Sau khi nhập xong đoạn văn bản đó bạn

hãy nhấn phím return lại lần nữa. Sau đó nhấn kết hợp các phím Control+D để

tiếp tục. Nhắc lệnh sẽ hỏi bạn xem bạn có muốn đánh dấu một bản copy của mail

đến một địa chỉ nào khác không, nhấnControl+D lần nữa. Kiểm tra mailbox của

bạn. Lệnh này sẽ gửi đi một mail đến một email ID đã được đề cập với subject

“Hello world”.

Để add thêm nội dung vào phần body của mail trong khi vẫn chạy lệnh, bạn có thể

sử dụng các tùy chọn dưới đây. Nếu bạn muốn bổ sung thêm đoạn văn bản của

chính bạn:

# echo “This will go into the body of the mail.” | mail -s “Hello world”

you@youremailid.com

Và nếu bạn muốn mail để đọc nội dung từ một file:

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

Một số tùy chọn hữu dụng khác trong lệnh mail này là:

-s subject (subject của mail)

-c email-address (Đánh dấu một copy cho địa chỉ “email-address” này hoặc CC)

-b email-address (Đánh dấu BCC)

Đây là cách bạn có thể sử dụng các tùy chọn này:

# 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

MUTT

Một trong những trở lại lớn trong việc sử dụng lệnh mail là nó không hỗ trợ việc

gửi các đính kèm. Tuy vậy, lệnh mutt lại hỗ trợ điều đó. Chúng tôi đã phát hiện

thấy tính năng này rất hữu dụng cho các kịch bản để tạo các báo cáo không nguyên

bản hoặc các back up có kích thước nhỏ. Mutt cho phép bạn có thể thực hiện rất

nhiều công việc ngoài việc chỉ gửi các đính kèm. Nó còn có nhiều tính năng hơn

lệnh mail. Chúng ta hãy đi khám phá những vấn đề cơ bản có thể thực hiện với

lệnh này. Đây là cách bạn có thể đính kèm một file vào mail:

# echo “Sending an attachment.” | mutt -a backup.zip -s “attachment”

calvin@cnh.com

Lệnh này sẽ gửi một mail đến calvin@cnh.com với chủ đề là “attachment”, body

là “Sending an attachment.” và gồm có một file đính kèm backup.zip. Giống như

lệnh mail, bạn có thể sử dụng tùy chọn “-c” để đánh dấu CC đến một mail ID

khác.

Gửi mail từ một kịch bản

Với những cơ bản đã được giới thiệu, bạn hoàn toàn có thể gửi các mail từ các

kịch bản của mình. Đây là một kịch bản đơn giản mà chúng tôi giới thiệu để đọc

không gian sử dụng trên phần vùng ổ cứng và mail dữ liệu đó đến bạn.

#!/bin/bash

df -h | mail -s “disk space report” calvin@cnh.com

Lưu các dòng này trong một file nào đó trên máy chủ Linux và chạy file này. Bạn

sẽ nhận được một email gồm có các kết quả của các lệnh trong đó. Mặc dù vậy,

nếu cần gửi nhiều dữ liệu hơn thì bạn cần phải viết dữ liệu vào một file văn bản và

nhập nó vào body của mail trong khi soạn thảo mail. Đây là một ví dụ về kịch bản

sẽ thực hiện công việc xem hiệu suất đĩa cứng cũng như bộ nhớ, ghi dữ liệu đó vào

một file tạm thời, sau đó nhập nó vào thân của một mail và gửi đi:

#!/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

Ở đây có một vấn đề phức tạp hơn. Bạn phải lấy một back up các file và mail sau

đó. Đầu tiên thư mục được mail sẽ được lưu lại. Sau đó nó sẽ được gửi như một

đính kèm của email bằng lệnh mutt. Đây là kịch bản để thực hiện công việc đó: