Trang chủ Linux Webserver [VestaCP – 9] Cài đặt Email Server để nhận và gửi email

[VestaCP – 9] Cài đặt Email Server để nhận và gửi email

bởi Thạch Phạm
7 bình luận 7,3K views

Tham gia nhóm hỗ trợ WordPress

Tham gia nhóm Hỗ trợ Server - Hosting & WordPress để cùng nhau hỏi đáp và hỗ trợ các vấn đề về WordPress, tối ưu máy chủ/server.

Tham gia ngay
Bài này thuộc phần 10 của 12 phần trong serie Hướng dẫn VestaCP

[alert color=”green” type=”alert-message-background” title=”Bổ sung video sau” size=”small”]Bài viết này sẽ được bổ sung video sau. Mong bạn thông cảm![/alert]

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.

[alert color=”orange” type=”alert-message-background” title=”Khuyến cáo” size=”small”]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.[/alert]

Để 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.

Khuyến mãi Black Friday

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é.

vestacp-mail-addacount

Sau đó nhập user cần tạo và mật khẩu.

vestacp-email-addacount02

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é.

vestacp-email-webmaillogin

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.

vestacp-check-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.

vestacp-check-dkim2

Kết quả ra thế này là đúng, nếu chưa có thì đợi chờ là hạnh phúc.

vestacp-check-dkim3

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.

digitalocean-rdns

Để 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.

check-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.

vestacp-check-spam

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.

Đánh giá nội dung này
7 bình luận

Có thể bạn quan tâm

Hiện tại blog tạm đóng bình luận vì mình cần tập trung thời gian vào cập nhật bài viết. Bình luận sẽ mở ra cho đến khi mình sẵn sàng.