Computer >> Máy Tính >  >> Điện thoại thông minh >> Linux

Cách gửi email từ dòng lệnh Linux

Hướng dẫn này sẽ chỉ cho bạn cách gửi email từ dòng lệnh Linux và qua các tập lệnh shell, cũng như cách thêm tệp đính kèm vào các email đó.

Dòng lệnh Linux có thể rất mạnh khi bạn biết cách sử dụng nó. Bạn có thể phân tích cú pháp dữ liệu, theo dõi các quy trình, tự động hóa sao lưu và làm rất nhiều việc hữu ích và thú vị khác bằng cách sử dụng nó. Thường có nhu cầu tạo một báo cáo và gửi nó qua đường bưu điện. Nó có thể là một yêu cầu đơn giản như một thông báo rằng quá trình sao lưu trong ngày diễn ra tốt đẹp hoặc không. Tôi sẽ giúp bạn bắt đầu gửi thư từ dòng lệnh Linux trong các tập lệnh shell. Chúng tôi cũng sẽ đề cập đến việc gửi tệp đính kèm từ dòng lệnh. Chúng ta sẽ bắt đầu bằng lệnh “mail”.

Lệnh thư

Trước tiên, hãy chạy kiểm tra nhanh để đảm bảo rằng ứng dụng “sendmail” đã được cài đặt và hoạt động chính xác. Thực thi lệnh sau, thay thế “you@youremailid.com” bằng địa chỉ e-mail của bạn.

# mail -s “Xin chào thế giới” you@youremailid.com

Nhấn phím quay lại và bạn sẽ đến một dòng mới. Nhập nội dung “Đây là bài kiểm tra từ máy chủ của tôi”. Theo dõi văn bản bằng cách nhấn lại vào phím quay lại. Sau đó, nhấn tổ hợp phím Control + D để tiếp tục. Dấu nhắc lệnh sẽ hỏi bạn xem bạn có muốn đánh dấu bản sao của thư đến bất kỳ địa chỉ nào khác hay không, nhấn Control + D lần nữa. Kiểm tra hộp thư của bạn. Lệnh này sẽ gửi một thư đến id email được đề cập với chủ đề, “Hello world”.

Để thêm nội dung vào nội dung thư trong khi chạy lệnh, bạn có thể sử dụng các tùy chọn sau. Nếu bạn muốn tự thêm văn bản:

# echo “Điều này sẽ đi vào nội dung của thư." | mail -s “Xin chào thế giới” you@youremailid.com

Và nếu bạn muốn thư đọc nội dung từ tệp:

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

Một số tùy chọn hữu ích khác trong lệnh thư là:

Chủ đề -s (Chủ đề của thư)
-c email-address (Đánh dấu một bản sao vào “địa chỉ email” hoặc CC này)
-b email-address (Đánh dấu một bản sao ẩn vào “địa chỉ email”, hoặc BCC này)

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

# echo “Chào mừng đến với thế giới của Calvin n Hobbes” | mail -s “Xin chào thế giới” calvin@cnh.com -c hobbes@cnh.com -b susie.derkins@cnh.com

Sử dụng MUTT cho các tệp đính kèm trong email

Một trong những hạn chế lớn của việc sử dụng lệnh mail là nó không hỗ trợ gửi các tệp đính kèm. Mặt khác, mutt hỗ trợ nó. Tôi nhận thấy tính năng này đặc biệt hữu ích cho các tập lệnh tạo báo cáo phi văn bản hoặc bản sao lưu có kích thước tương đối nhỏ mà tôi muốn sao lưu ở nơi khác. Tất nhiên, mutt cho phép bạn làm được nhiều việc hơn là chỉ gửi các tệp đính kèm. Nó là một ứng dụng thư dòng lệnh hoàn chỉnh hơn nhiều so với lệnh “mail”. Ngay bây giờ, chúng ta sẽ chỉ khám phá những thứ cơ bản mà chúng ta có thể cần thường xuyên. Đây là cách bạn đính kèm tệp vào thư:

# echo “Đang gửi tệp đính kèm.” | mutt -a backup.zip -s “file đính kèm” calvin@cnh.com

Lệnh này sẽ gửi một thư đến calvin@cnh.com với chủ đề (-s) “tệp đính kèm”, nội dung là “Đang gửi tệp đính kèm.”, Chứa tệp đính kèm (-a) backup.zip. Giống như với lệnh mail, bạn có thể sử dụng tùy chọn “-c” để đánh dấu một bản sao cho một id thư khác.

Gửi Email từ Tập lệnh Shell

Bây giờ, với những điều cơ bản đã được đề cập, bạn có thể gửi thư từ các tập lệnh shell của mình. Đây là một tập lệnh shell đơn giản giúp bạn đọc được việc sử dụng dung lượng trên các phân vùng của mình và gửi dữ liệu qua thư cho bạn.

#! / bin / bash
df -h | mail -s “báo cáo dung lượng ổ đĩa” calvin@cnh.com

Lưu những dòng này trong một tệp trên máy chủ Linux của bạn và chạy nó. Bạn sẽ nhận được một thư có chứa kết quả của lệnh. Tuy nhiên, nếu bạn cần gửi nhiều dữ liệu hơn mức này, bạn sẽ cần ghi dữ liệu vào tệp văn bản và nhập dữ liệu đó vào nội dung thư trong khi soạn thư. Dưới đây là ví dụ về tập lệnh shell sử dụng đĩa cũng như sử dụng bộ nhớ, ghi dữ liệu vào một tệp tạm thời, sau đó nhập tất cả vào phần nội dung của thư được gửi đi:

#! / bin / bash
df -h> /tmp/mail_report.log
free -m>> /tmp/mail_report.log
mail -s “báo cáo đĩa và RAM” calvin @ cnh.com

Bây giờ, đây là một vấn đề phức tạp hơn. Bạn phải sao lưu một số tệp và thư sau đó gửi đi. Đầu tiên, thư mục được gửi đi được lưu trữ. Sau đó, nó được gửi dưới dạng tệp đính kèm email bằng cách sử dụng mutt. Đây là một kịch bản để thực hiện điều đó:

#! / bin / bash
tar -zcf /tmp/backup.tar.gz / home / calvin / files
echo | mutt -a /tmp/backup.tar.gz -s “sao lưu dữ liệu hàng ngày” calvin@cnh.com

Tiếng vọng ở đầu dòng cuối cùng thêm một khoảng trống vào phần nội dung thư đang được đặt ra.

Điều này sẽ giúp bạn bắt đầu với việc gửi thư từ dòng lệnh Linux và từ các tập lệnh shell. Đọc “man page” cho cả mail và mutt để có thêm tùy chọn (nhập các lệnh “man mail” và “man mutt” để có hướng dẫn sử dụng đầy đủ trên mỗi trang). Sau đó, sử dụng trí tưởng tượng của bạn cho những gì bạn có thể làm với lệnh thư, chẳng hạn như tự gửi báo cáo tự động.