Khởi tạo VPS trong 60 giây · Hoàn tiền trong 7 ngày · Hỗ trợ kỹ thuật 24/7
Bitech Bitech
Hướng dẫn

Hướng dẫn gửi email từ dòng lệnh Linux bằng Mail, Mutt và Msmtp

Hướng dẫn chi tiết cách gửi email từ dòng lệnh Linux bằng mail, mutt và msmtp, hỗ trợ tệp đính kèm, xác thực SMTP và kịch bản Bash script.

Giới thiệu

Gửi email trực tiếp từ giao diện dòng lệnh (CLI) trong Linux là giải pháp hiệu quả để tự động hóa công việc, gửi báo cáo hệ thống hoặc phát cảnh báo từ các kịch bản Bash script. Bài viết này Bitech sẽ hướng dẫn bạn cách cài đặt và sử dụng ba công cụ phổ biến gồm mail, muttmsmtp trên hai hệ điều hành phổ biến là Ubuntu và RHEL.


1. Sử dụng công cụ mail (mailx)

Lệnh mail là giải pháp đơn giản nhất để gửi các tin nhắn văn bản nhanh từ dòng lệnh.

Cài đặt

  • Trên Ubuntu/Debian:
    sudo apt update
    sudo apt install mailutils
    
  • Trên RHEL/CentOS:
    sudo dnf install mailx
    

Cách gửi email đơn giản

Bạn có thể truyền nội dung trực tiếp vào lệnh mail thông qua đường ống (pipe):

echo "Nội dung email thử nghiệm" | mail -s "Tiêu đề Email" user@example.com

2. Sử dụng mutt để gửi thư có tệp đính kèm

mutt là một công cụ mạnh mẽ hỗ trợ gửi thư kèm theo các tệp tài liệu, hình ảnh hoặc báo cáo.

Cài đặt

  • Ubuntu/Debian: sudo apt install mutt
  • RHEL/CentOS: sudo dnf install mutt

Cú pháp gửi tệp đính kèm

Sử dụng tham số -a để chỉ định đường dẫn tệp đính kèm và -- để phân tách danh sách người nhận:

echo "Gửi bạn tệp báo cáo hệ thống." | mutt -s "Báo cáo định kỳ" -a /path/to/report.pdf -- user@example.com

3. Cấu hình xác thực SMTP với msmtp

Khi cần gửi email qua các máy chủ SMTP bên thứ ba (như Gmail, SendGrid) yêu cầu xác thực bảo mật, msmtp là công cụ phù hợp nhất.

Cài đặt

  • Ubuntu/Debian: sudo apt install msmtp msmtp-mta
  • RHEL/CentOS: sudo dnf install msmtp

Tạo tệp cấu hình ~/.msmtprc

Tạo tệp cấu hình cá nhân để lưu thông tin máy chủ SMTP:

defaults
auth           on
tls            on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        ~/.msmtp.log

account        default
host           smtp.example.com
port           587
from           your-email@example.com
user           your-email@example.com
password       your-password

Phân quyền bảo mật để bảo vệ thông tin đăng nhập:

chmod 600 ~/.msmtprc

Gửi email kiểm tra

echo "Nội dung thư kiểm tra msmtp" | msmtp user@example.com

4. Tự động hóa gửi email bằng Bash Script

Bạn có thể tích hợp các lệnh trên vào kịch bản Bash để tự động kiểm tra trạng thái máy chủ và gửi cảnh báo khi phát hiện sự cố:

#!/bin/bash
RECIPIENT="admin@example.com"
SUBJECT="Cảnh báo dung lượng ổ đĩa"
THRESHOLD=80

USAGE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//')

if [ $USAGE -gt $THRESHOLD ]; then
    echo "Dung lượng ổ đĩa đã vượt ngưỡng: $USAGE%" | mail -s "$SUBJECT" "$RECIPIENT"
fi

Tóm tắt

Tùy vào nhu cầu sử dụng, bạn có thể linh hoạt chọn mail cho các thông báo đơn giản, mutt khi cần đính kèm tệp hoặc msmtp để làm việc với máy chủ SMTP ngoài.


Ngày phát hành: 02/06/2026
Nguồn: www.digitalocean.com