Skip to content
VDS · Ứng dụng và bot

Máy chủ mail: tại sao khó và cần cân nhắc điều gì

Tại sao cổng gửi mail đi bị đóng và cách mở chúng, cần cấu hình gì để email được gửi đi — PTR, SPF, DKIM, DMARC — và khi nào bạn không nên tự chạy máy chủ mail.

Cập nhật 23 tháng 8, 2026

Việc thiết lập máy chủ mail không khó về mặt kỹ thuật — phần khó là đưa email vào “Hộp thư đến” thay vì thư rác, và tránh bị trả lại âm thầm. Bài viết này trình bày những gì bạn cần làm trước khi gửi email đầu tiên.

Vì sao đây là một tác vụ riêng

Việc nhận email hoạt động gần như ngay lập tức: bạn thiết lập máy chủ, mở cổng 25, và thư đến. Vấn đề nằm ở việc gửi, và nó gồm hai phần. Thứ nhất, các cổng mail đi ra bị đóng mặc định trên nền tảng của chúng tôi và được mở theo yêu cầu. Thứ hai, phía nhận (Gmail, Mail.ru, Yandex) kiểm tra người gửi theo nhiều tiêu chí, và chỉ cần trượt một tiêu chí là thư sẽ thành thư rác hoặc bị từ chối.

Tối thiểu, những điều sau được kiểm tra:

Kiểm tra gìCấu hình ở đâuĐiều gì xảy ra nếu thiếu
Cổng 25 đi ra có mở khôngYêu cầu hỗ trợEmail không gửi đi được chút nào
Reverse DNS (PTR)Tab “Truy cập” trong bảng điều khiển máyBị từ chối ngay ở giai đoạn kết nối
SPFDNS của tên miềnEmail vào thư rác
DKIMDNS của tên miền + máy chủ mailEmail vào thư rác
DMARCDNS của tên miềnTên miền dễ bị giả mạo
Uy tín IPLịch sử gửiBị lọc âm thầm

Thứ tự thiết lập

  1. Yêu cầu mở cổng đi ra. Các cổng 25, 465 và 587 bị đóng đối với lưu lượng đi ra cho đến khi được mở theo yêu cầu của bạn. Hãy bắt đầu từ đây: nếu không có bước này, bạn không thể kiểm tra phần còn lại, như mô tả bên dưới.
  2. PTR. Bản ghi reverse DNS phải khớp với tên mà máy chủ trình bày trong SMTP. Đặt nó trong bảng điều khiển máy ở tab “Truy cập”, ví dụ mail.example.com, và tạo bản ghi A chuyển tiếp tương ứng trỏ đến địa chỉ của máy.
  3. Bộ mail. Cách dễ nhất là một bộ cài sẵn trong container — docker-mailserver hoặc Mailcow. Nó được cài qua Docker Compose và sẽ tự dựng Postfix, Dovecot, antispam và khóa DKIM.
  4. DNS. Tạo bản ghi MX cho tên máy chủ, rồi SPF và DMARC:
example.com.        MX  10 mail.example.com.
example.com.        TXT "v=spf1 mx -all"
_dmarc.example.com. TXT "v=DMARC1; p=quarantine; rua=mailto:postmaster@example.com"
  1. DKIM. Máy chủ mail tạo khóa; bạn công bố phần công khai dưới dạng bản ghi TXT <selector>._domainkey.example.com.
  2. Kiểm tra. Gửi email đến một dịch vụ kiểm tra (mail-tester, learndmarc) và hướng tới điểm tối đa. Đừng gửi bất kỳ thư hàng loạt nào trước bước này.

Các cổng mail đi ra bị đóng mặc định

Đây là điều chính cần biết trước khi cài máy chủ mail. Lưu lượng đi ra từ máy đến các cổng 25, 465 và 587 bị chặn trên host. Việc gửi email ra bên ngoài từ một máy mới không hoạt động và sẽ không hoạt động nhờ cấu hình bên trong hệ thống: các gói tin không rời khỏi giao diện mạng của nó.

Bạn có thể kiểm tra như sau — kết nối sẽ không được thiết lập:

nc -vz smtp.gmail.com 25

Điều này được thực hiện vì một máy bị xâm nhập sẽ bắt đầu gửi thư rác trước tiên, và mọi hàng xóm trên host đều phải chịu trách nhiệm về địa chỉ và uy tín của nó. Điều này không ảnh hưởng đến việc nhận email: các kết nối đến cổng 25, 465, 587 và 993 không bị chặn, và máy chủ mail nhận thư ngay lập tức.

Cách mở chúng

Các cổng được mở theo yêu cầu, thủ công, và không tức thì. Không có nút nào cho việc này trong bảng điều khiển.

  1. Viết cho hỗ trợ kèm số máy (tab “Thanh toán”, khối “Để được hỗ trợ”).
  2. Mô tả những gì bạn gửi: tên miền, tính chất của email, khối lượng ước tính mỗi ngày.
  3. Chờ phản hồi. Trong lúc cổng còn đóng, bạn có thể cài và cấu hình máy chủ mail — nhưng không thể kiểm tra việc gửi.

Thư hàng loạt đến các cơ sở dữ liệu mua sẵn không được mở dưới bất kỳ lời giải thích nào; xem Những gì bạn có thể và không thể làm trên máy.

Nếu bạn cần gửi ngay hôm nay thay vì sau vài lần qua lại, hãy dùng relay bên ngoài: một dịch vụ mail cung cấp thông tin đăng nhập SMTP và chấp nhận kết nối trên cổng 2525 hoặc qua API, và không cần cổng 25.

Tường lửa bên trong máy

Về phía bạn, hãy cho phép các kết nối đến cổng mail:

sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
sudo ufw allow 465/tcp
sudo ufw allow 993/tcp

Các quy tắc ufw chỉ kiểm soát những gì đi vào hệ thống của bạn. Việc chặn cổng 25, 465 và 587 đi ra là từ bên ngoài, và ufw allow out không gỡ bỏ nó.

Đừng bao giờ để một open relay. Kiểm tra: swaks --to test@example.com --server <machine-address> từ một máy khác mà không xác thực — kết nối phải bị từ chối. Một open relay biến địa chỉ của máy thành nguồn thư rác trong vòng một ngày và phá hủy uy tín của nó mãi mãi.

Khi bạn không cần máy chủ mail riêng

  • Bạn chỉ cần gửi thông báo từ một ứng dụng — hãy dùng dịch vụ gửi bên ngoài. Nó rẻ hơn và có khả năng gửi đến tốt hơn. Kết nối đến nó qua HTTP API hoặc một cổng thay thế như 2525: các cổng tiêu chuẩn 465 và 587 cũng bị đóng như cổng 25.
  • Bạn cần email trên một tên miền cho mọi người — hosting mail sẽ giải quyết tác vụ mà không cần bạn tham gia.
  • Bạn chưa sẵn sàng theo dõi cập nhật và hàng đợi — một máy chủ mail bị bỏ mặc sẽ thành lỗ hổng bảo mật.

Máy chủ riêng là hợp lý khi tính độc lập quan trọng và bạn sẵn sàng bảo trì: sao lưu các hộp thư là bắt buộc, và bạn cần phân bổ dung lượng đĩa cho mail với mức dự phòng — xem dung lượng đĩa.