1. Chuẩn bị Domain name và Hostname
Giả sử ta muốn đặt tên máy RPi là mail.mydomain, trong đó mydomain có thể là domain thực trỏ đến static IP hay có thể là local domain.
Nếu dùng local dns dnsmasq thì tạo local domain trỏ đến local ip của RPi
Đặt tên máy RPi theo câu lệnh sau:
hostnamectl set-hostname mail.mydomain
echo "RPi_IP mydomain mail.mydomain" >> /etc/hosts
init 6
Sau các câu lệnh trên RPi được khởi động lại
Kiểm tra kết quả bằng các câu lệnh
hostname
hostname -s
hostname -f
hostname -A
Kết quả là
mail.mydomain mail mydomain mydomain
2. Cài đặt postfix
apt-get install postfix mailutils
Trong quá trình cài đặt, chọn Internet Site và điền mydomain khi được hỏi
3. Cấu hình postfix
Sửa file /etc/postfix/main.cf thành tương tự như
# See /usr/share/postfix/main.cf.dist for a commented, more complete version smtpd_banner = $myhostname ESMTP biff = no # appending .domain is the MUA's job. append_dot_mydomain = no readme_directory = no # See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on fresh installs. compatibility_level = 2 # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination myhostname = mail.mydomain mydomain = mydomain alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases #myorigin = /etc/mailname myorigin = $mydomain mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost relayhost = mynetworks = 127.0.0.0/8, 192.168.1.0/24 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all #inet_protocols = all inet_protocols = ipv4 home_mailbox = Maildir/ # SMTP-Auth settings smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
Sửa các từ đánh dấu đỏ cho đúng với thực tế
Khởi động lại postfix và kiểm tra cấu hình
systemctl restart postfix
systemctl status postfix
4. Thử gởi mail
Các câu lệnh sau đây gởi mail cho user root
echo "mail body"| mail -s "test mail" root
ls /root/Maildir/new/
Câu lệnh thứ 2 xem có mail trong hộp mail của root không?
5. Cài đặt và cấu hình Dovecot IMAP
apt-get install dovecot-core dovecot-imapd
- /etc/dovecot/dovecot.conf :
tìm và bỏ dấu # trước dòng
#listen = *, ::
- /etc/dovecot/conf.d/10-auth.conf :
tìm và sửa cho giống 2 dòng
disable_plaintext_auth = no auth_mechanisms = plain login
- /etc/dovecot/conf.d/10-mail.conf:
tìm và sửa mail_location
mail_location = maildir:~/Maildir
- /etc/dovecot/conf.d/10-master.conf
# Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }
Khởi động lại Dovecot
systemctl restart dovecot.service
systemctl status dovecot.service
6. Cài đặt webmail Rainloop
Trước hết tạo thư mục webmail trong thư mục www, chuyển vào webmail và chạy lệnh sau
curl -sL https://repository.rainloop.net/installer.php | php
Nều dùng Nginx, thêm các dòng sau đây trong cấu hình web của Rainloop
location ^~ /data { deny all; }
Mở webmail bằng địa chỉ http://your_webserver/webmail/?admin, đăng nhập với admin/12345
Sau đó vào mục Domain để tạo file cấu hình cho mail server của mình
Người dùng bình thường đăng nhập bằng địa chỉ http://your_webserver/webmail với user:pass của Linux
7. Gởi mail internet bằng tài khoản GMail
Thêm vào /etc/postfix/main.cf các dòng sau
#relay via gmail relayhost = [smtp.gmail.com]:587 smtp_use_tls = yes smtp_sasl_auth_enable = yes smtp_sasl_security_options = smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
Tạo thêm file /etc/postfix/sasl/sasl_passwd có nội dung
[smtp.gmail.com]:587 GMail_account:password
Sau đó mã hóa bằng lệnh
postmap /etc/postfix/sasl/sasl_passwd
Khởi động lại Postfix
postfix reload
Để gởi internet mail, trong webmail Rainloop -> Domain, đánh dấu chọn GMail
Mail server với webmail Rainloop có khả năng:
- Gởi và nhận mail nội bộ
- Gởi và nhận mail internet