Postfix cũng là một giải pháp thay thế nhẹ hơn để chạy một máy chủ SMTP hoàn chỉnh, trong khi vẫn giữ được các chức năng cần thiết. Trong hướng dẫn này, mình sẽ hướng dẫn bạn cài đặt và cấu hình Postfix làm Server SMTP chỉ gửi trên Ubuntu 20.04.
Những điểm chính
- Postfix là một MTA linh hoạt, có thể cấu hình để gửi email từ ứng dụng cục bộ, lý tưởng cho việc gửi thông báo thường xuyên hoặc xử lý lưu lượng email lớn.
- Để cài đặt Postfix (chỉ gửi) trên Ubuntu 20.04, bạn cần một server Ubuntu 20.04, một tên miền đã đăng ký (ví dụ: vietnixtest.com) và bản ghi A DNS trỏ đến IP server.
- Cài đặt Postfix SMTP (chỉ gửi) trên Ubuntu 20.04 gồm 5 bước: cài đặt, cấu hình, kiểm tra, chuyển tiếp mail hệ thống và bật mã hóa.
- VPS Vietnix cung cấp hiệu suất tối ưu và ổn định cho mọi dự án nhờ hạ tầng mạnh mẽ, đa dạng cấu hình, giá linh hoạt và hỗ trợ kỹ thuật 24/7.
Postfix là gì?
Postfix là một ứng dụng chuyển thư (mail transfer agent – MTA) dùng để gửi và nhận email, được cấu hình để chỉ có thể được sử dụng chỉ gửi email bằng ứng dụng cục bộ. Điều này hữu ích trong các tình huống khi bạn cần thường xuyên gửi thông báo qua email từ ứng dụng của mình hoặc có nhiều lưu lượng truy cập ra bên ngoài mà nhà cung cấp dịch vụ email bên thứ ba không cho phép.

Yêu cầu để cài đặt và cấu hình Postfix làm Server SMTP chỉ gửi trên Ubuntu 20.04
Việc thiết lập và duy trì server mail riêng rất phức tạp và tốn thời gian. Đối với hầu hết người dùng, việc sử dụng dịch vụ mail trả phí sẽ thực tế hơn.
Nếu bạn muốn cài đặt và cấu hình Postfix, bạn cần:
- Một server Ubuntu 20.04 bao gồm cả việc tạo một sudo non-root user.
- Tên miền được đăng ký. Hướng dẫn này sẽ sử dụng
vietnixtest.com
. - Một bản ghi A DNS với
vietnixtest.com
trỏ đến địa chỉ IP máy chủ của bạn.
5 bước cài đặt và cấu hình Postfix làm Server SMTP chỉ gửi trên Ubuntu 20.04
Bước 1: Cài đặt Postfix
Cách nhanh nhất là cài đặt package mailutils
, bao gồm Postfix với một vài chương trình bổ sung mà bạn sẽ sử dụng để kiểm tra việc gửi email.
Đầu tiên, cập nhật cơ sở dữ liệu package:
sudo apt update
Cài đặt Postfix bằng cách chạy lệnh sau:
sudo apt install mailutils
Gần cuối quá trình cài đặt, bạn sẽ thấy tùy chọn cấu hình Postfix:

Tùy chọn mặc định là Internet Site
. Đó là tùy chọn được đề xuất cho trường hợp của bạn, vì vậy hãy nhấn TAB
rồi ENTER
. Nếu chỉ thấy dòng mô tả nhấn TAB
chọn OK
rồi ENTER
.
Nếu không thấy tự động hiển thị, hãy chạy lệnh sau để khởi động nó:
sudo dpkg-reconfigure postfix
Sau đó, bạn sẽ nhận được một lời nhắc cấu hình khác liên quan đến System mail name:

System mail name phải giống với tên bạn đã gán cho server của mình khi tạo. Khi bạn hoàn tất, hãy nhấn TAB
, sau đó là ENTER
.
Bước 2: Cấu hình Postfix
Trong bước này, bạn sẽ cấu hình Postfix để chỉ gửi và nhận email từ server nó đang chạy, nghĩa là từ localhost
.
Để điều đó xảy ra, bạn cần cấu hình Postfix để chỉ nghe trên loopback interface, giao diện mạng ảo mà server sử dụng để liên lạc nội bộ. Để thực hiện các thay đổi, bạn cần chỉnh sửa file cấu hình Postfix chính có tên là main.cf
, được lưu trữ trong etc/postfix
.
Mở nó để chỉnh sửa bằng trình soạn thảo của bạn:
sudo nano /etc/postfix/main.cf
Hãy tìm các dòng lệnh sau đây:
/etc/postfix/main.cf
. . .
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
. . .
Đặt giá trị của cài đặt inet_interfaces
thành loopback-only
:
/etc/postfix/main.cf
. . .
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
Một directive khác mà bạn sẽ cần sửa đổi là mydestination
, chỉ định danh sách các domain được gửi qua phương tiện chuyển phát thư local_transport
. Theo mặc định, các giá trị tương tự như sau:
/etc/postfix/main.cf
. . .
mydestination = $myhostname, vietnixtest.com, localhost.com, , localhost
Đổi dòng lệnh giống như thế này:
/etc/postfix/main.cf
. . .
mydestination = localhost.$mydomain, localhost, $myhostname
Nếu domain của bạn là một subdomain và bạn muốn các email giống như được gửi từ domain chính, thì bạn có thể thêm dòng sau vào cuối main.cf
:
/etc/postfix/main.cf
...
masquerade_domains = vietnixtest.com
Cài đặt masquerade_domains
tùy chọn chỉ định các domain mà subdomain sẽ bị xóa trong địa chỉ email.
Khi bạn đã hoàn tất, hãy lưu và đóng file.
Lưu ý
Nếu bạn đang lưu trữ nhiều miền trên một máy chủ, thì các miền khác cũng có thể được chuyển tới Postfix bằng directive mydestination.
Sau đó, khởi động lại Postfix bằng cách chạy lệnh sau:
sudo systemctl restart postfix
Bạn đã cấu hình Postfix để chỉ gửi email từ server của mình. Bây giờ, bạn sẽ kiểm tra nó bằng cách gửi một thông báo mẫu đến một địa chỉ email.
Nếu bạn đang tìm kiếm một giải pháp máy chủ mạnh mẽ, linh hoạt để cài đặt và cấu hình Postfix làm Server SMTP Send-Only trên Ubuntu 20.04, bạn có thể tham khảo dịch vụ VPS của Vietnix.
Vietnix cung cấp đa dạng các gói VPS như VPS Giá Rẻ, VPS AMD, VPS SSD, VPS GPU và VPS NVMe. Với VPS Vietnix, bạn sẽ có quyền truy cập vào một môi trường máy chủ ảo độc lập, giúp bạn cài đặt và cấu hình Postfix một cách dễ dàng, nhanh chóng.
Truy cập ngay với trang dịch vụ VPS của Vietnix để tìm hiểu thông tin chi tiết và lựa chọn gói phù hợp với nhu cầu.
Bước 3: Thử nghiệm Server SMTP
Trong bước này, bạn sẽ kiểm tra xem Postfix có thể gửi email đến tài khoản email bên ngoài hay không bằng cách sử dụng lệnh mail
, đây là một phần của gói mailutils
mà bạn đã cài đặt ở bước đầu tiên.
echo "This is the body of the email" | mail -s "This is the subject line" vietnix@email.com
Bạn có thể thay đổi nội dung và chủ đề của email theo ý thích của mình. Hãy nhớ thay vietnix@email.com
bằng một địa chỉ email hợp lệ mà bạn có thể truy cập.
Bây giờ, hãy kiểm tra địa chỉ email mà bạn đã gửi tin nhắn này. Bạn sẽ thấy tin nhắn trong hộp thư đến của bạn. Nếu không có, hãy kiểm tra thư mục thư rác của bạn. Thường tại thời điểm này, tất cả các email bạn gửi đều không mã hóa, khiến các nhà cung cấp dịch vụ cho rằng đó có thể là thư rác. Bạn sẽ thiết lập mã hóa sau.
Nếu bạn nhận được lỗi từ lệnh mail
hoặc bạn chưa nhận được thư sau một khoảng thời gian dài, hãy kiểm tra xem cấu hình Postfix mà bạn đã chỉnh sửa có hợp lệ không và tên server cũng như tên hostname của bạn đã được đặt theo miền của bạn chưa.
Lưu ý
Với cấu hình này, địa chỉ trong trường From cho các email kiểm tra bạn gửi sẽ ở dạng your_user_name@vietnixtest.com, trong đó your_user_name là tên người dùng của server người dùng mà bạn đã chạy lệnh.
Bây giờ bạn đã gửi một email từ server của mình và xác minh rằng nó đã được nhận thành công.
Bước 4: Chuyển tiếp System Mail
Trong bước này, bạn sẽ thiết lập chuyển tiếp email cho người dùng root
để các thư do hệ thống tạo ra được gửi tới nó trên server của bạn được chuyển tiếp tới một địa chỉ email bên ngoài.
File /etc/aliases
chứa danh sách các tên thay thế cho người nhận email. Hãy mở nó để chỉnh sửa:
sudo nano /etc/aliases
Trong trạng thái mặc định sẽ giống như thế này:
/etc/aliases
# See man 5 aliases for format
postmaster: root
Directive duy nhất hiện diện xác định rằng các email do hệ thống tạo sẽ được gửi tới root
.
Hãy thêm dòng sau vào cuối file:
/etc/aliases
...
root: vietnix@email.com
Với dòng lệnh này, bạn chỉ định rằng các email được gửi đến root
sẽ được chuyển tiếp đến một địa chỉ email. Nhớ thay vietnix@email.com
bằng địa chỉ email cá nhân của bạn. Khi bạn đã hoàn tất, hãy lưu và đóng file.
Để thay đổi có hiệu lực, hãy chạy lệnh sau:
sudo newaliases
Việc chạy lệnh newaliases
sẽ tạo cơ sở dữ liệu về bí danh mà lệnh mail
sử dụng, được lấy từ file cấu hình bạn vừa chỉnh sửa.
Kiểm tra xem việc gửi email tới root
có hoạt động không bằng cách chạy:
echo "This is the body of the email" | mail -s "This is the subject line" root
Bạn sẽ nhận được email tại địa chỉ email của bạn. Nếu không có ở đó, hãy kiểm tra thư mục thư rác của bạn.
Trong bước này, bạn thiết lập chuyển tiếp thư do hệ thống tạo đến địa chỉ email của mình. Bây giờ, bạn sẽ bật mã hóa thư để tất cả các email mà server của bạn gửi không bị giả mạo trong quá trình chuyển tiếp và sẽ được xem là hợp pháp hơn.
Bước 5: Bật mã hóa SMTP
Bây giờ, bạn sẽ bật mã hóa SMTP bằng cách yêu cầu chứng chỉ TLS miễn phí từ Let’s Encrypt cho miền của bạn (sử dụng Certbot) và định cấu hình Postfix để sử dụng chứng chỉ này khi gửi tin nhắn.
Ubuntu bao gồm Certbot trong repository gói mặc định của họ, vì vậy bạn có thể cài đặt nó bằng cách chạy lệnh sau:
sudo apt install certbot
Khi được yêu cầu xác nhận, hãy nhập Y
và nhấn ENTER
.
Là một phần của thiết lập server ban đầu trong các điều kiện tiên quyết, bạn đã cài đặt ufw
, một tường lửa cơ bản. Người dùng sẽ cần cấu hình nó để cho phép cổng HTTP 80
, để có thể hoàn tất quá trình xác minh tên miền. Chạy lệnh sau để kích hoạt nó:
sudo ufw allow 80
Output sẽ trông như thế này:
Output
Rule added
Rule added (v6)
Bây giờ cổng đã mở, hãy chạy Certbot để lấy chứng chỉ:
sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d vietnixtest.com
Lệnh này ra lệnh cho Certbot cấp chứng chỉ có kích thước khóa RSA là 4096 bit, để chạy máy chủ web độc lập tạm thời (--standalone
) để xác minh và kiểm tra qua cổng 80
(--preferred-challenges http
). Hãy nhớ thay thế vietnixtest.com
bằng tên miền của bạn trước khi chạy lệnh và nhập địa chỉ email của bạn khi được nhắc.
Ouput sẽ tương tự như thế này:
Output
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for `vietnixtest.com`
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/vietnixtest.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/vietnixtest.com/privkey.pem
Your cert will expire on 2020-07-11. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Như đã viết trong ghi chú, chứng chỉ và file khóa cá nhân của bạn đã được lưu trong /etc/letsencrypt/live/vietnixtest.com
.
Bây giờ bạn đã có chứng chỉ của mình, hãy mở main.cf
để chỉnh sửa:
sudo nano /etc/postfix/main.cf
Hãy tìm phần sau đây:
/etc/postfix/main.cf
# 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_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
Sửa đổi nó thành như sau, nhớ thay vietnixtest.com
bằng tên miền của bạn nếu cần. Điều này sẽ cập nhật cài đặt TLS của bạn cho Postfix:
/etc/postfix/main.cf
# TLS parameters
smtpd_tls_cert_file=/etc/letsencrypt/live/vietnixtest.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/vietnixtest.com/privkey.pem
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
Khi bạn đã hoàn tất, hãy lưu và đóng file. Áp dụng các thay đổi bằng cách khởi động lại Postfix:
sudo systemctl restart postfix
Bây giờ, hãy thử gửi lại email:
echo "This is the body of an encrypted email" | mail -s "This is the subject line" vietnix@email.com
Sau đó, kiểm tra địa chỉ email bạn đã cung cấp. Có thể bạn sẽ thấy thư trong hộp thư đến của mình ngay lập tức vì các nhà cung cấp dịch vụ email có nhiều khả năng đánh dấu các thư không được mã hóa là thư rác.
Bạn có thể kiểm tra thông tin kỹ thuật về thông báo email nơi client của mình để biết rằng thư thực sự được mã hóa.
VPS Vietnix – Giải pháp máy chủ áo tối ưu cho mọi dự án
Vietnix sở hữu hạ tầng máy chủ hiện đại, phần cứng mạnh mẽ và công nghệ ảo hóa ưu việt, do đó dịch vụ VPS tại đây luôn đảm bảo website khách hàng hoạt động mượt mà, không gián đoạn, ngay cả khi traffic tăng đột biến.
Đồng thời, Vietnix đã phát triển nhiều gói VPS với đa dạng cấu hình, mức giá linh hoạt, phù hợp với mọi quy mô dự an, tưd đó tiết kiệm ngân sách mà vẫn đảm bảo hiệu quả tối đa. Bên cạnh đó, đội ngũ kỹ thuật viên chuyên nghiệp của Vietnix luôn được đánh giá cao trong suốt thời gian hoạt động bởi lúc nào cũng sẵn sàng hỗ trợ 24/7, giải đáp mọi thắc mắc và xử lý nhanh chóng mọi vấn đề phát sinh từ khách hàng.
Thông tin liên hệ:
- Hotline: 18001093.
- Email: sales@vietnix.com.vn.
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/.
Việc cài đặt và cấu hình Postfix làm Server SMTP chỉ gửi trên Ubuntu 20.04 không chỉ giúp bạn kiểm soát việc gửi email từ ứng dụng mà còn tăng cường tính bảo mật cho hệ thống. Hy vọng bài viết này đã cung cấp cho bạn hướng dẫn chi tiết và dễ hiểu để thực hiện quá trình cài đặt và cấu hình một cách suôn sẻ. Nếu gặp bất kỳ khó khăn nào, đừng ngần ngại bình luận để được hỗ trợ. Chúc bạn thành công!
Mọi người cũng đọc thêm:
Hướng dẫn quản lý an toàn các Secrets bằng HashiCorp trên Ubuntu 20.04
Cách cài đặt và cấu hình Laravel với Nginx trên Ubuntu 20.04 (LEMP)
Hướng dẫn bật SFTP mà không cần truy cập shell trên Ubuntu 20.04
Sử dụng Ansible để cài đặt và thiết lập Docker trên Ubuntu 20.04
Hướng dẫn cách cài đặt và cấu hình Postfix trên Ubuntu 20.04