Bài 16A: SSMTP

SSMTP

ssmtp là ứng dụng chỉ gởi mail, giả lập và thay thế cho ứng dụng sendmail của hệ thống.

S1. Cài đặt

sudo apt-get install ssmtp mailutils mpack
  • ssmtp: Gởi mail qua giao thức SMTP
  • mailutils: Cung cấp nhiều tiện ích cho mail client và server, trong đó việc dùng ssmtp theo cú pháp sendmail
  • mpack: Gởi file kèm qua mail

S2. Thêm user vào nhóm mail

usermod -a -G mail user_name
Thí dụ để có thể gởi mail từ web, thêm user www-data vào nhóm mail
usermod -a -G mail www-data

S3. Soạn thảo file cấu hình /etc/ssmtp/ssmtp.conf, với các dòng bắt buộc

AuthUser=your_mail_id@gmail.com
AuthPass=your_mail_password
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES

và các dòng tùy chọn

rewriteDomain=yourDomain.com

khi đó mail có vẻ được gởi đi từ yourDomain.com thay vì gmail.com

FromLineOverride=YES

khi đó dòng From được giữ nguyên, thí dụ from@domain.com, trái lại nó sẽ được thay đổi theo tên của user Linux thực hiện gởi mail (cột thứ 5 trong file /etc/passwd), để sửa giá trị của cột này dùng lệnh

usermod -c "Fullname" username
Thí dụ, usermod -c "RPI-11's Webmaster" www-data

S3b. File cấu hình cho yahoo

AuthUser=your_mail_id@yahoo.com
AuthPass=your_mail_password
mailhub=smtp.mail.yahoo.com:587
AuthMethod=LOGIN
UseSTARTTLS=YES

S3c. File cấu hình cho mailgun

AuthUser=your_mail_id@mailgunSubdomain
AuthPass=your_mail_password
mailhub=smtp.mailgun.org:587
UseSTARTTLS=YES

Có thể soạn nhiều file cấu hình cho từng dịch vụ email với tên khác nhau yahoo.conf, mailgun.conf trong đó file cấu hình mặc định có tên ssmtp.conf S4. chown và chmod từng file cấu hình

chown root:mail /etc/ssmtp/ssmtp.conf
chmod 640 /etc/ssmtp/ssmtp.conf
chown root:mail /etc/ssmtp/mailgun.conf
chmod 640 /etc/ssmtp/mailgun.conf

S5. Soạn thảo file /etc/ssmtp/revaliases (tùy chọn) File này chứa dữ liệu về tài khoản email của các user Linux, gồm các dòng có dạng local_account:outgoing_address:mailhub[:port]. Thí dụ

root:root@your.domain:smtp.gmail.com:587
www-data:yourwebpagesname@your.domain:smtp.mailgun.org:587

www-data là user dùng trong web server, vì vậy cần có tài khoản này nếu muốn gởi mail từ WordPress… Không chỉ định user thì ssmtp mặc định gởi từ user root S4. Gởi mail

  • Gởi mail từ dòng lệnh, file cấu hình mặc định ssmtp.conf, dùng cú pháp sendmail
echo "sample text" | mail -u www-data -s "Subject" target@domain.com
cat "message.txt" | mail -s "Subject" target@domain.com
mpack -s "test" /home/pi/test/somefile.jpg username@domain.com
  • Gởi mail từ dòng lệnh, file cấu hình mặc định ssmtp.conf, dùng cú pháp ssmtp
echo -e "From: Webmaster <webmaster@mydomain>\nTo: Ly Anh Tuan <lnt@mydomain>\nSubject: This is subject\n\nBody line 1\nBody line n" | ssmtp lnt@mydomain
  • Gởi email từ tài khoản khác, file cấu hình mailgun.conf, dùng cú pháp ssmtp
echo -e "To: you@yourdomain\nSubject: Subject here\n\nBody here" | ssmtp -F"Ly Anh Tuan" -fme@mydomain -C/etc/ssmtp/mailgun.conf you@yourdomain

Chú thích: ssmtp có thể bỏ qua không đọc file cấu hình khác nếu có file /etc/ssmtp/revaliases

  • Gởi mail từ PHP

Mở file /etc/php5/fpm/php.ini, sửa dòng sendmail_path thành

sendmail_path = /usr/sbin/sendmail -t -i

Khởi động lại PHP và dùng hàm mail của PHP để gới mail S5. Đọc mail Có thể dùng Python hay PHP để đọc mail Google, Microsoft… Nếu dùng mailgun.com thì không phải định kỳ kiểm tra mail từ mail server và không phải phân tích nội dung mail, vì có thể cài đặt route để mailgun chuyển nội dung email về RPi ngay mỗi khi có email đến.

Leave a Comment

Filed under Software

Leave a Reply