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.
1. 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
2. Thêm user vào nhóm mail
usermod -a -G mail user_name
usermod -a -G mail www-data
3. 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
- 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
- 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
4. 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
5. Soạn thảo file /etc/ssmtp/revaliases.
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_account:mailhub[:port].
Thí dụ
root:postmaster@your.domain:smtp.gmail.com:587 www-data:no-reply@your.domain:smtp.mailgun.org:587
www-data là user dùng trong web server, vì vậy PHP sẽ gởi mail qua account no-replay@your.domain. Không chỉ định user thì ssmtp mặc định gởi từ user root, dùng account postmaster@your.domain
6. 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
7. Đọ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.
Chú thích
- AuthPass không chấp nhận các ký tự : hay + hay #
- Dường như S5 là bắt buộc. Các khai báo root hay mailhub có thể bị bỏ qua