Hướng dẫn cài dịch vụ Email trên VPS thuê tại thueVPS

Bạn vừa thuê một VPS tại thueVPS và muốn tự chạy mail server để gửi email giao dịch cho ứng dụng, hoặc muốn có hòm thư riêng với tên miền mình sở hữu, không phụ thuộc Gmail hay Outlook? Việc này khả thi hoàn toàn, nhưng nếu cấu hình sai, email của bạn sẽ bay thẳng vào thư mục Spam. Bài này mình sẽ hướng dẫn bạn cài dịch vụ Email trên VPS thuê tại thueVPS một cách chi tiết, từ cài Postfix, Dovecot đến cấu hình DNS (SPF, DKIM, DMARC) cho thư đến tay người nhận.
Yêu cầu trước khi bắt đầu
- Một VPS chạy Ubuntu 24.04 LTS (hoặc Debian 12) với quyền root hoặc user sudo. Bạn có thể đặt mua VPS giá rẻ tại thueVPS với IPv4 riêng, full root để làm chủ toàn bộ tiến trình.
- Tên miền (domain) đã trỏ DNS về VPS. Ví dụ:
yourdomain.com. - Biết sử dụng SSH và soạn thảo file trên Linux (vim, nano).
Vì sao nên tự cài mail server thay vì dịch vụ bên ngoài?
Tự quản email server giúp bạn có quyền kiểm soát rất cao: không giới hạn dung lượng hộp thư, gửi số lượng email giao dịch không bị chặn vì vượt quota. Bạn cũng chủ động được bảo mật, tự cấu hình bộ lọc, và tạo bao nhiêu hộp thư với tên miền mình thích. Tuy nhiên, đánh đổi là bạn phải tự lo chống spam, đảm bảo danh tiếng IP và cập nhật hệ thống thường xuyên.
Bước 1 - Cập nhật hệ thống và cài đặt gói cần thiết
Đầu tiên, SSH vào VPS và chạy lệnh cập nhật toàn bộ gói.
sudo apt update && sudo apt upgrade -y
Tiếp theo, cài đặt Postfix (MTA), Dovecot (IMAP/POP3) và các công cụ hỗ trợ.
sudo apt install postfix dovecot-core dovecot-imapd dovecot-pop3d opendkim opendkim-tools -y
Trong quá trình cài Postfix, bạn sẽ được hỏi loại cấu hình. Chọn Internet Site và nhập yourdomain.com làm system mail name.
Verify: Kiểm tra trạng thái Postfix và Dovecot đã chạy chưa.
sudo systemctl status postfix
sudo systemctl status dovecot
Bước 2 - Cấu hình Postfix (gửi thư ra ngoài)
Mở file cấu hình chính của Postfix.
sudo nano /etc/postfix/main.cf
Đảm bảo có các dòng sau (nếu thiếu thì thêm hoặc sửa):
myhostname = mail.yourdomain.com
mydomain = yourdomain.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
myhostname là hostname đầy đủ của VPS, thường trỏ đến A record (ví dụ mail). home_mailbox = Maildir/ sẽ lưu thư dạng thư mục Maildir trong thư mục home của user.
Kiểm tra cú pháp và restart Postfix.
sudo postfix check
sudo systemctl restart postfix
Bước 3 - Cấu hình Dovecot (nhận thư)
Mở file cấu hình Dovecot.
sudo nano /etc/dovecot/dovecot.conf
Bỏ comment dòng !include conf.d/*.conf và thêm dòng sau để dùng giao thức IMAP và POP3.
protocols = imap pop3
Tiếp theo, chỉnh file /etc/dovecot/conf.d/10-mail.conf để đặt đường dẫn hộp thư đúng với Postfix.
mail_location = maildir:~/Maildir
Sau đó, mở file /etc/dovecot/conf.d/10-auth.conf và bật plaintext auth (chỉ nên dùng trong mạng nội bộ hoặc kết hợp SSL).
disable_plaintext_auth = no
auth_username_format = %n
Khởi động lại Dovecot.
sudo systemctl restart dovecot
Bước 4 - Tạo chứng chỉ SSL miễn phí với Certbot
Dùng Let’s Encrypt để tạo chứng chỉ SSL cho hostname mail.yourdomain.com, cần thiết cho kết nối IMAPS/POP3S an toàn.
sudo apt install certbot -y
sudo certbot certonly --standalone -d mail.yourdomain.com
Sau khi có chứng chỉ, cấu hình Postfix và Dovecot dùng SSL. Thêm các dòng sau vào /etc/postfix/main.cf:
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.yourdomain.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.yourdomain.com/privkey.pem
smtpd_use_tls = yes
smtpd_tls_security_level = may
Trong Dovecot, mở /etc/dovecot/conf.d/10-ssl.conf và sửa:
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.yourdomain.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.yourdomain.com/privkey.pem
Verify: Sau khi restart cả 2 service, kiểm tra cổng 993 (IMAPS) bằng telnet hoặc nmap.
sudo systemctl restart postfix dovecot
sudo ss -tlnp | grep -E ':25|:143|:587|:993'
Bước 5 - Cấu hình DNS: A record, MX record
Đến phần thiết yếu: trỏ DNS. Bạn cần vào quản trị DNS của tên miền (thường trên Cloudflare, hoặc DNS của nhà đăng ký) và thêm các bản ghi sau:
| Loại | Tên | Giá trị | Mục đích |
|---|---|---|---|
| A | <địa chỉ IP VPS> | Trỏ hostname mail về IP VPS | |
| MX | @ (hoặc để trống) | mail.yourdomain.com (priority 10) | Chỉ định server nhận thư |
Verify: Dùng lệnh dig mx yourdomain.com để kiểm tra MX record đã xuất hiện chưa.
Bước 6 - Thiết lập SPF, DKIM và DMARC (chống spam)
Đây là bước quan trọng nhất để email của bạn không bị đánh dấu là spam.
Thêm bản ghi SPF
Thêm TXT record cho domain chính @ với giá trị:
"v=spf1 mx a:mail.yourdomain.com ~all"
Cài và cấu hình OpenDKIM
Mở file /etc/opendkim.conf và thêm:
Domain yourdomain.com
KeyFile /etc/opendkim/keys/yourdomain.com/mail.private
Selector mail
Socket inet:8891@localhost
Tạo thư mục và sinh key.
sudo mkdir -p /etc/opendkim/keys/yourdomain.com
sudo opendkim-genkey -D /etc/opendkim/keys/yourdomain.com/ -d yourdomain.com -s mail
sudo chown -R opendkim:opendkim /etc/opendkim/keys/
sudo systemctl restart opendkim
Nội dung public key nằm trong file /etc/opendkim/keys/yourdomain.com/mail.txt. Bạn copy giá trị p=... và tạo một TXT record mail._domainkey.yourdomain.com với giá trị đó.
Thêm DMARC
Tạo TXT record cho _dmarc.yourdomain.com với giá trị:
"v=DMARC1; p=quarantine; rua=mailto:[email protected]"
Verify: Sau khi DNS propagate (có thể mất vài phút), dùng MXToolbox hoặc lệnh dig txt mail._domainkey.yourdomain.com để kiểm tra DKIM.
Bước 7 - Tạo user và gửi thử email
Tạo user hệ thống cho hộp thư.
sudo useradd -m -s /bin/bash contact
sudo passwd contact
Bây giờ, từ VPS, gửi thử một email tới Gmail của bạn.
echo "Test mail from my VPS" | mail -s "Hello Gmail" [email protected]
Kiểm tra hộp thư Inbox và Spam của Gmail. Nếu thấy trong Inbox, bạn đã thành công. Nếu vào Spam, kiểm tra lại các bản ghi DNS (thường là thiếu DKIM hoặc SPF sai cú pháp).
Xử lý lỗi thường gặp
- Email bị bounce với mã 550: Nguyên nhân thường do IP VPS có reputation thấp. Hãy kiểm tra IP trên blacklist và làm sạch. Dùng rDNS (PTR record) trỏ về
mail.yourdomain.comcũng giúp cải thiện đáng kể. - Không kết nối được qua IMAP/POP3: Kiểm tra firewall. Trên Ubuntu dùng
sudo ufw allow 993,587,25,143/tcprồisudo ufw reload. - Error "permission denied" trên Maildir: Chạy
sudo chown contact:contact /home/contact/Maildir/ -R, sau đó restart Dovecot.
Nếu bạn không muốn tự xử lý hết đống cấu hình phức tạp này, có thể chọn dịch vụ VPS SMTP từ thueVPS với IP sạch và cấu hình sẵn port 25, giúp bạn chỉ cần focus vào gửi email, không phải đau đầu với SPF/DKIM.
Câu hỏi thường gặp
Có cần port 25 mở sẵn trên VPS không?
Có. Port 25 là cổng chuẩn để gửi email ra Internet. Hầu hết VPS mới đều block port này để tránh spam. Bạn nên kiểm tra với thueVPS trước khi mua VPS nếu cần dùng port 25.
Dùng Maildir hay mbox?
Maildir là lựa chọn tốt hơn vì mỗi email là một file riêng, không lo hỏng một email làm hỏng toàn bộ hộp thư. Từ đầu bài mình đã dùng Maildir.
Làm sao để tạo nhiều hộp thư?
Đơn giản là tạo user Linux tương ứng: sudo useradd -m -s /bin/bash sales, sudo passwd sales. Sau đó bạn có thể đăng nhập qua email client với địa chỉ [email protected].
Chỉnh sửa file cấu hình xong mà service không restart được, phải làm sao?
Kiểm tra log ngay: sudo journalctl -u postfix -n 50 và sudo journalctl -u dovecot -n 50. Lỗi thường gặp là sai cú pháp file config (thiếu dấu ; hoặc sai đường dẫn). Chạy sudo postfix check để Postfix tự phát hiện lỗi.
Bài viết liên quan
- Gửi email transactional trên VPS với Postfix relay
- Phần mềm email marketing miễn phí và opensource 2026
- Cách cấu hình DNS record A, CNAME, MX, TXT cho tên miền


