Bài viết này sẽ được bổ sung video sau. Mong bạn thông cảm!
VestaCP có tích hợp sẵn các tính năng để tạo Mail Server mà bạn có thể sử dụng với mục đích gửi hoặc nhận email theo tên miền riêng, dạng như [email protected] vậy đó, và nó cũng đã cài đặt sẵn ClamAV với SpamAssassin để chống spam mail. Trong bài viết này mình sẽ hướng dẫn bạn cấu hình email server trên VestaCP.
Tự cài đặt Mail Server là một công việc khá mệt mỏi vì đôi lúc cài đặt xong hết email vẫn vào thư mục Spam khi gửi, cái này liên quan đến IP hoặc ISP của máy chủ. Vì vậy mình không đảm bảo hướng dẫn cài đặt trong bài này sẽ giúp bạn gửi email vào thẳng Inbox. Mình vẫn khuyến khích bạn dùng SMTP bên ngoài nếu gửi mail từ website và Google App Business nếu cần email theo tên miền.
Để cài đặt được mail server trong VestaCP chạy tốt, bạn nên cài DNS riêng rồi trỏ về VestaCP và cài SSL với Let’s Encrypt cho domain cần sử dụng để gửi/nhận email.
Bạn có thể cài Email Server cho bất cứ domain nào trong VestaCP trên bất cứ user nào, nhưng không nên cài email cho hostname nhé vì chúng ta không nên sử dụng hostname vào những việc khác ngoại trừ truy cập vô máy chủ.
Bước 1. Phân quyền cho mail và clamav (CentOS 7)
Chỉ làm nếu bạn dùng CentOS 7.
Không hiểu vì lý do gì mà mặc định ClamAV không thể tạo socket để chạy trên CentOS 7, do vậy bạn cần cấp quyền cho nó vào thư mục sẽ chứa socket để chạy với lệnh sau:
chown -R clam:clam /var/run/clamav/
Và nếu bạn có cài SSL bằng Let’s Encrypt cho trang quản trị thì phải phân quyền lại thư mục chứa chứng chỉ của Let’s Encrypt và symlink của nó tại /usr/local/vesta/ssl nhé.
chown -R root:mail /usr/local/vesta/ssl/certificate.crt chmod -R 755 /usr/local/vesta chown -R root:mail /etc/letsencrypt/live chmod -R 755 /etc/letsencrypt
Xong rồi đó.
Bước 2. Tạo tài khoản email cho domain
Khi thêm domain vào, bạn nhớ đánh dấu vào mục Email Support để có thể dùng email riêng theo domain đó nhé. Sau đó bạn vào mục Mail và bấm Add Account để thêm một địa chỉ email mới. Lưu ý là nhìn xuống chỗ DKIM Support phải là Yes nhé.
Sau đó nhập user cần tạo và mật khẩu.
Bây giờ bạn đã có một tài khoản email, bạn có thể đăng nhập vào https://hostname/webmail để đăng nhập và quản lý. Ở đây bằng sẽ nhập username ở dạng user@domain nhé.
Bây giờ hãy thử dùng một cái gmail hay mail nào đó gửi một email thử vào địa chỉ email vừa tạo xem nhận được không nhé. Nếu bạn đã trỏ domain về DNS riêng thì bạn sẽ nhận được.
Kiểm tra DKIM Key
Để chắc chắn DKIM Key đã được cập nhật vào DNS thì bạn vào phần DNS rồi ấn Listing records vào domain cần kiểm tra. Nếu bạn thấy 2 bản ghi TXT với tên là domainkey như thế này là đã có DKIM.
Nếu không có cái đó, bạn vào phần Mail, sửa cái domain email cần cập nhật và bỏ chọn DKIM Support rồi lưu lại, sau đó sửa lại lần nữa và đánh dấu vào rồi lưu lại, nó sẽ tự thêm DKIM vào DNS.
Lưu ý, bạn phải xóa cái DKIM _domainkey
đi vì nếu có hai DKIM thì nó sẽ không nhận. Chỉ giữ lại mail._domainkey
.
Nếu có DKIM trong DNS rồi, bạn cũng cần kiểm tra online tại website https://www.mail-tester.com/spf-dkim-check, phần Selector bạn nhập là mail và nhập domain cần kiểm tra vào.
Kết quả ra thế này là đúng, nếu chưa có thì đợi chờ là hạnh phúc.
Kiểm tra rDNS (Reverse DNS)
Cái này chúng ta không thể tự setup được mà phải nhờ vào ISP để họ thiết lập. Tuy nhiên đa phần chúng ta có thể thiết lập rDNS đó là khi đăng ký VPS thì chúng ta phải thiết lập hostname trùng với hostname mà chúng ta sẽ sử dụng trong VestaCP. Ví dụ như mình thiết lập hostname là sv.vnsudo.com thì tên hostname trên VPS cũng phải như vậy.
Để xác nhận bạn đã có rDNS chưa thì gõ lệnh host IP-máy-chủ, nếu nó ra như hình dưới là đã có rDNS.
Tuy nhiên theo mình thấy nếu không có rDNS thì thi thoảng vẫn vô inbox được.
Kiểm tra log lỗi của Exim
Khi thiết lập email, tốt nhất bạn nên xem log lỗi của Exim tại /var/log/exim/main.log. Chúng ta nên dùng lệnh tail -f
để xem trực tiếp lỗi khi gửi email để biết mình có bị lỗi gì không.
tail -f/var/log/exim/main.log
Kiểm tra điểm spam
Và để chắc chắn chúng ta đã setup email đầy đủ thì hãy kiểm tra điểm spam tại https://www.mail-tester.com/, bạn chỉ cần vào đó lấy địa chỉ gửi email kiểm tra rồi dùng email của mình vừa tạo để gửi qua địa chỉ đó. Lưu ý là để kiểm tra chính xác, bạn nên soạn một email dài và tiêu đề như một email thật.
Sau khi gửi xong thì quay trở lại website mail-tester và ấn Then check your score là bạn sẽ biết điểm mình. Đạt điểm 10/10 là tuyệt vời, nếu chưa được thì xem còn lỗi ở đâu và fix, thường thì lỗi chưa có DKIM là nhiều nhất.
Nếu 10/10 mà vẫn còn spam nữa thì là do định mệnh, thiết lập email thực sự rất mệt mỏi nên nếu bạn làm mãi không được thì dùng SMTP nếu gửi mail từ website và dùng Google App Business nếu cần email riêng theo domain nhé, mình thì vẫn khuyến khích dùng dịch vụ email bên ngoài hơn để đỡ mất thời gian mà lại không an toàn bằng.