SSMTP (secure Simple Mail Transfer Protocol)là một sự thay thế cho sendmail để gửi thư trên Linux.
Nó cho phép bạn định cấu hình gửi qua máy chủ của bên thứ 3.
1. Cài đặt
Trên Ubuntu
Update repo
apt-get update
Cài đặt dịch vụ SSMTP và các gói hỗ trợ
apt-get -y install ssmtp mailutils
Trên CentOS 7
Update
yum update
Cài đặt
yum -y install ssmtp
2. Cấu hình
File cấu hình SSMTP : /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
# root=postmaster
root=dangdohai1996@gmail.com
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
# mailhub=mail
mailhub=smtp.gmail.com:587
AuthUser=youremail@gmail.com
AuthPass=youremailpassword
UseTLS=YES
UseSTARTTLS=YES
# Where will the mail seem to come from?
#rewriteDomain=
rewriteDomain=gmail.com
# The full hostname
hostname=ssmtpServer
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES
Tại đây, ta sử dụng gmail nên mục mailhub
và rewriteDomain để là gmail.
AuthUser=youremail@gmail.com
: Email bạn sử dụng để gửi email
AuthPass=youremailpassword
: Mật khẩu email
Cho phép ứng dụng truy cập gmail
Nếu bạn sử dụng gmail làm địa chỉ người gửi thì bạn phải cho phép ứng dụng truy cập gmail của bạn
Đăng nhập bằng gmail để thực hiện gửi mail đã khai báo bên trên trên trình duyệt và truy cập vào địa chỉ sau:
https://myaccount.google.com/lesssecureapps
Bật chế độ cho phép ứng dụng truy cập
Tạo alias cho user local. Mở file sau và sửa
vi /etc/ssmtp/revaliases
Thêm dòng
root:youremail@gmail.com:smtp.gmail.com:587
3. Gửi mail
Cách 1 : Dùng lệnh
Sử dụng lệnh:
ssmtp -v des.email@mail.com
Sau đó nhập nội dung mail. Kết thúc bằng cách nhấn tổ hợp phím Ctrl+D
Cách 2 : Kết hợp với echo
Kết hợp với lệnh echo
echo "Nội dung email" | ssmtp -v des.email@mail.com
Thêm Subject cho mail
{
echo Subject: subject_email
echo Nội dung email
} | ssmtp des.email@mail.com
Cách 3: Gửi nội dung từ file
Tạo file nội dung mail có dạng:
Subject: Subject email
Nội dung email
Gửi mail:
ssmtp des_email@gmail.com < file
Lưu ý:
Với việc sử dụng ssmtp trong bash script với crontab, ta nên sử dụng đường dẫn dịch vụ ssmtp.
Thông thường, đường dẫn mặc định sẽ là /usr/sbin/ssmtp
. Hoặc bạn có thể tìm bằng cách locate ssmtp
và chọn đường dẫn thực thi đúng của dịch vụ ssmtp.
Chúc các bạn thành công !