Cách cài đặt và cấu hình Postfix trên Ubuntu 20.04
Postfix là một tác nhân truyền thư (MTA) open-souce phổ biến được dùng để định tuyến và gửi email trên hệ thống Linux. Người ta ước tính rằng khoảng 25% server thư công cộng trên internet chạy Postfix. Trong hướng dẫn này, bạn sẽ học cách cài đặt và cấu hình Postfix trên server Ubuntu 20.04. Sau đó, bạn sẽ kiểm tra xem Postfix có thể định tuyến thư một cách chính xác hay không bằng cách cài đặt s-nail
, một Mail User Agent (MUA), còn gọi là ứng dụng email .
Lưu ý mục tiêu của hướng dẫn này là giúp bạn cài đặt và chạy Postfix một cách nhanh chóng chỉ với một số chức năng email đơn giản. Bạn sẽ không có server email đầy đủ tính năng vào cuối hướng dẫn này, nhưng bạn sẽ có một số thành phần cơ bản của cài đặt như vậy để giúp bạn bắt đầu.
Yêu cầu
Để làm theo hướng dẫn này, bạn cần các thành phần sau :
- Server chạy Ubuntu 20.04 để hoạt động như server thư Postfix của bạn. Server này phải có user không phải root có quyền
sudo
và firewall được cấu hình bằng UFW. Bạn có thể làm theo hướng dẫn cài đặt server ban đầu Ubuntu 20.04 của ta để cài đặt điều này. - Tên domain Đủ điều kiện đã chỉ vào server Ubuntu 20.04 của bạn. Bạn có thể tìm trợ giúp về cách cài đặt domain của bạn với DigitalOcean theo tài liệu Tên domain và Mạng DNS của ta . Hãy lưu ý nếu bạn định truy cập thư từ một vị trí bên ngoài, bạn cần đảm bảo bạn cũng có bản ghi MX trỏ đến server thư của bạn .
Lưu ý hướng dẫn này giả định bạn đang cấu hình một server có FQDN của mail.example.com
. Khi cần thiết, hãy đảm bảo thay đổi example.com
hoặc mail.example.com
để phản ánh FQDN của bạn .
Bước 1 - Cài đặt Postfix
Postfix có trong repository lưu trữ mặc định của Ubuntu, vì vậy bạn có thể cài đặt nó với APT.
Để bắt đầu, hãy cập nhật cache ẩn gói apt
local của bạn:
- sudo apt update
Sau đó, cài đặt gói postfix
bằng lệnh sau. Lưu ý ở đây ta chuyển biến môi trường DEBIAN_PRIORITY=low
vào lệnh cài đặt này. Điều này sẽ khiến quá trình cài đặt nhắc bạn cấu hình một số tùy chọn bổ sung:
- sudo DEBIAN_PRIORITY=low apt install postfix
Quá trình cài đặt này sẽ mở ra một loạt dấu nhắc tương tác. Với mục đích của hướng dẫn này, hãy sử dụng thông tin sau để điền vào dấu nhắc của bạn:
- Loại cấu hình thư chung? : Đối với điều này, hãy chọn Trang web Internet vì điều này phù hợp với nhu cầu cơ sở hạ tầng của ta .
- Tên thư hệ thống : Đây là domain cơ sở được sử dụng để tạo địa chỉ email hợp lệ khi chỉ phần account của địa chỉ được cung cấp. Ví dụ, giả sử tên server của server của bạn là
mail. example.com
. Bạn có thể sẽ muốn đặt tên thư hệ thống thànhexample.com
để, với tên useruser1
, Postfix sẽ sử dụng địa chỉuser1@ example.com
. - Người nhận thư root và postmaster : Đây là account Linux sẽ được chuyển tiếp thư đến
root@
vàpostmaster@
. Sử dụng account chính của bạn cho việc này. Trong trường hợp ví dụ này, sammy . - Các điểm đến khác để chấp nhận thư : Điều này xác định các điểm đến thư mà version Postfix này sẽ chấp nhận. Nếu bạn cần thêm bất kỳ domain nào khác mà server này sẽ chịu trách nhiệm nhận, hãy thêm các domain đó tại đây. Nếu không, giá trị mặc định sẽ là đủ.
- Buộc cập nhật đồng bộ trên hàng đợi thư? : Vì bạn có thể đang sử dụng một hệ thống file log , hãy chấp nhận Không ở đây.
- Mạng local : Đây là danh sách các mạng mà server thư của bạn được cấu hình để chuyển tiếp thư. Mặc định sẽ hoạt động cho hầu hết các trường hợp. Tuy nhiên, nếu bạn chọn sửa đổi nó, hãy đảm bảo rất hạn chế liên quan đến phạm vi mạng.
- Giới hạn kích thước hộp thư : Điều này được dùng để giới hạn kích thước của thư. Đặt nó thành
0
vô hiệu hóa mọi giới hạn về kích thước. - Ký tự mở rộng địa chỉ local : Đây là ký tự được dùng để tách phần thông thường của địa chỉ khỏi phần mở rộng (được sử dụng để tạo alias động). Mặc định,
+
sẽ hoạt động cho hướng dẫn này. - Các giao thức Internet để sử dụng : Chọn có hạn chế version IP mà Postfix hỗ trợ hay không. Đối với mục đích của hướng dẫn này, hãy chọn tất cả .
Nói một cách rõ ràng, đây là những cài đặt được sử dụng trong hướng dẫn này:
- Loại cấu hình thư chung? : Trang web Internet
- Tên thư hệ thống :
example.com
(không phảimail.example.com
) - Người nhận thư root và administrator bưu điện : Tên user của account Linux chính của bạn ( sammy trong ví dụ của ta )
- Các điểm đến khác để chấp nhận thư cho :
$myhostname, example.com , mail.example.com , localhost.example.com , localhost
- Buộc cập nhật đồng bộ trên hàng đợi thư? : Không
- Mạng local :
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
- Giới hạn kích thước hộp thư :
0
- Ký tự của phần mở rộng về địa chỉ local :
+
- Các giao thức Internet để sử dụng : tất cả
Lưu ý : Nếu bạn cần quay lại để thay đổi các cài đặt này, bạn có thể thực hiện bằng cách nhập:
- sudo dpkg-reconfigure postfix
Các dấu nhắc sẽ được điền trước với các câu trả lời trước đó của bạn.
Khi quá trình cài đặt kết thúc, bạn đã sẵn sàng thực hiện một vài cập nhật cho cấu hình Postfix của bạn .
Bước 2 - Thay đổi cấu hình Postfix
Đến đây bạn có thể điều chỉnh một số cài đặt mà quá trình cài đặt gói không nhắc bạn. Nhiều cài đặt cấu hình của Postfix được xác định trong file /etc/postfix/main.cf
. Thay vì chỉnh sửa trực tiếp file này, bạn có thể sử dụng lệnh postconf
của Postfix để truy vấn hoặc đặt cài đặt cấu hình.
Để bắt đầu, hãy đặt vị trí cho hộp thư của user Ubuntu không phải root của bạn. Trong hướng dẫn này, ta sẽ sử dụng định dạng Maildir , định dạng này tách thư thành các file riêng lẻ, sau đó được di chuyển giữa các folder dựa trên hành động của user . Tùy chọn thay thế không được đề cập trong hướng dẫn này là định dạng mbox , định dạng này lưu trữ tất cả thư trong một file duy nhất.
Đặt biến home_mailbox
thành Maildir/
. Sau đó, bạn sẽ tạo một cấu trúc folder dưới tên đó trong folder chính của user của bạn. Cấu hình home_mailbox
bằng lệnh :
- sudo postconf -e 'home_mailbox= Maildir/'
Tiếp theo, đặt vị trí của bảng virtual_alias_maps
, bảng này ánh xạ các account email tùy ý với các account hệ thống Linux. Chạy lệnh sau, lệnh này ánh xạ vị trí bảng tới file database băm có tên /etc/postfix/virtual
:
- sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
Đến đây bạn đã xác định vị trí của file bản đồ ảo trong file main.cf
của bạn , bạn có thể tạo file đó và bắt đầu ánh xạ account email với account user trên hệ thống Linux của bạn . Tạo file bằng editor bạn muốn ; trong ví dụ này, ta sẽ sử dụng nano
:
- sudo nano /etc/postfix/virtual
Liệt kê bất kỳ địa chỉ nào mà bạn muốn chấp nhận email, theo sau là khoảng trắng và user Linux mà bạn muốn gửi thư đó đến.
Ví dụ: nếu bạn muốn chấp nhận email tại contact@ example.com
và admin@ example.com
và muốn gửi những email đó đến user sammy Linux, bạn có thể cài đặt file của bạn như sau:
contact@example.com sammy admin@example.com sammy
Sau khi bạn đã ánh xạ tất cả các địa chỉ tới các account server thích hợp, hãy lưu file . Nếu bạn đã sử dụng nano
, hãy thực hiện việc này bằng cách nhấn CTRL + X
, Y
, sau đó ENTER
.
Áp dụng ánh xạ bằng lệnh :
- sudo postmap /etc/postfix/virtual
Khởi động lại quy trình Postfix đảm bảo rằng tất cả các thay đổi đã được áp dụng:
- sudo systemctl restart postfix
Giả sử bạn đã làm theo hướng dẫn Cài đặt Server Ban đầu tiên quyết , bạn sẽ cấu hình firewall với UFW. Tường lửa này sẽ chặn các kết nối bên ngoài đến các dịch vụ trên server của bạn theo mặc định trừ khi các kết nối đó được cho phép một cách rõ ràng, vì vậy bạn sẽ phải thêm luật firewall để cho phép một ngoại lệ cho Postfix.
Bạn có thể cho phép kết nối với dịch vụ bằng lệnh :
- sudo ufw allow Postfix
Như vậy, Postfix được cấu hình và sẵn sàng chấp nhận các kết nối bên ngoài. Tuy nhiên, bạn vẫn chưa sẵn sàng để thử nghiệm nó với ứng dụng thư khách. Trước khi bạn có thể cài đặt một ứng dụng client và sử dụng nó để tương tác với thư được gửi đến server của bạn , bạn cần thực hiện một vài thay đổi đối với cài đặt server Ubuntu của bạn .
Bước 3 - Cài đặt Ứng dụng Thư và Khởi tạo Cấu trúc Maildir
Để tương tác với thư được gửi, bước này sẽ hướng dẫn bạn quá trình cài đặt gói s-nail
. Đây là một biến thể giàu tính năng của ứng dụng client xmail
BSD có thể xử lý chính xác định dạng Maildir.
Tuy nhiên, trước khi cài đặt ứng dụng client , cần thận trọng đảm bảo rằng biến môi trường MAIL
của bạn được đặt chính xác. s-nail
sẽ tìm kiếm biến này để tìm ra nơi tìm thư cho user của bạn.
Để đảm bảo biến MAIL
được đặt dù bạn truy cập vào account của bạn bằng cách nào - chẳng hạn như thông qua ssh
, su
, su -
hoặc sudo
- bạn cần đặt biến trong file /etc/bash.bashrc
và thêm nó thành một file trong /etc/profile.d
đảm bảo rằng nó được đặt cho tất cả user theo mặc định.
Để thêm biến vào các file này, hãy nhập:
- echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
Để đọc biến vào phiên hiện tại của bạn, hãy mã nguồn file /etc/profile.d/mail.sh
:
- source /etc/profile.d/mail.sh
Sau khi hoàn tất, hãy cài đặt ứng s-nail
email s-nail
với APT:
- sudo apt install s-nail
Trước khi chạy ứng dụng client , bạn cần điều chỉnh một số cài đặt. Mở file /etc/s-nail.rc
trong editor :
- sudo nano /etc/s-nail.rc
Ở cuối file , hãy thêm các tùy chọn sau:
. . . set emptystart set folder=Maildir set record=+sent
Đây là những gì những dòng này làm:
-
set emptystart
: cho phép khách hàng mở ngay cả với hộp thư đến trống -
set folder=Maildir
: đặtMaildir
folder vào nội bộfolder
biến -
set record=+sent
tạo một file mboxsent
để lưu trữ thư đã gửi trong bất kỳ folder nào được đặt làm biếnfolder
, trong trường hợp này làMaildir
Lưu file khi bạn hoàn tất. Đến đây bạn đã sẵn sàng để khởi tạo cấu trúc Maildir của hệ thống.
Một cách nhanh chóng để tạo cấu trúc Maildir trong folder chính của bạn là gửi cho mình một email bằng lệnh s-nail
. Bởi vì file sent
sẽ chỉ khả dụng sau khi Maildir được tạo, bạn nên tắt tính năng ghi vào nó cho email đầu tiên này. Thực hiện việc này bằng cách chuyển tùy chọn -Snorecord
.
Gửi email bằng cách nối một chuỗi vào lệnh s-nail
. Điều chỉnh lệnh để đánh dấu user Linux của bạn là người nhận:
- echo 'init' | s-nail -s 'init' -Snorecord sammy
Lưu ý : Bạn có thể nhận được phản hồi sau:
OutputCan't canonicalize "/home/sammy/Maildir"
Điều này là bình thường và chỉ có thể xuất hiện khi gửi tin nhắn đầu tiên này.
Bạn có thể kiểm tra đảm bảo rằng folder đã được tạo bằng cách tìm folder ~/Maildir
của bạn:
- ls -R ~/Maildir
Bạn sẽ thấy cấu trúc folder đã được tạo và một file tin mới nằm trong folder ~/Maildir/new
:
Output/home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1463177269.Vfd01I40e4dM691221.mail.example.com /home/sammy/Maildir/tmp:
Bây giờ cấu trúc folder đã được tạo, bạn đã sẵn sàng để kiểm tra ứng dụng client s-nail
bằng cách xem thư init
bạn đã gửi và gửi thư đến một địa chỉ email bên ngoài.
Bước 5 - Kiểm tra khách hàng
Để mở ứng dụng client , hãy chạy lệnh s-nail
:
- s-nail
Trong console của bạn , bạn sẽ thấy một hộp thư đến thô sơ với thông báo init
đang chờ:
Outputs-nail version v14.9.15. Type `?' for help "/home/sammy/Maildir": 1 message 1 new >N 1 sammy@example.com 2020-05-19 15:40 14/392 init
Nhấn ENTER
để hiển thị thông báo:
Output[-- Message 1 -- 14 lines, 369 bytes --]: From sammy@example.com Tue May 19 15:40:48 2020 Date: Tue, 19 May 2020 15:40:48 +0000 To: sammy@example.com Subject: init Message-Id: <20160513220749.A278F228D9@mail.example.com> From: sammy@example.com init
Bạn có thể quay lại danh sách thư bằng lệnh h
, rồi ENTER
:
- h
Output>R 1 sammy@example.com 2020-05-19 15:40 14/392 init
Lưu ý thông báo bây giờ có trạng thái R
, cho biết rằng nó đã được đọc.
Vì thông báo này không hữu ích lắm, bạn có thể xóa nó bằng cách nhấn d
, sau đó ENTER
:
- d
Để quay lại terminal , hãy nhập q
và sau đó ENTER
:
- q
Để kiểm tra cuối cùng, hãy kiểm tra xem s-nail
có thể gửi email một cách chính xác hay không. Để thực hiện việc này, bạn có thể chuyển nội dung của file văn bản vào quy trình s-nail
, giống như bạn đã làm với thông báo init
mà bạn đã gửi ở bước trước.
Bắt đầu bằng cách viết một tin nhắn thử nghiệm trong một editor :
- nano ~/test_message
Bên trong, hãy nhập một số văn bản bạn muốn gửi:
Hello, This is a test. Please confirm receipt!
Lưu file sau khi viết tin nhắn của bạn.
Sau đó, sử dụng lệnh cat
để chuyển thông điệp đến quy trình s-nail
. Bạn có thể làm như vậy với ví dụ sau, sử dụng các tùy chọn sau:
-
-s
: Điều này xác định dòng chủ đề của email -
-r
: Một thay đổi tùy chọn đối với trường “Từ:” của email. Theo mặc định, user Linux mà bạn đăng nhập sẽ được sử dụng để điền trường này. Tùy chọn-r
cho phép bạn overrides địa chỉ này bằng một địa chỉ hợp lệ, chẳng hạn như một trong những địa chỉ bạn đã xác định trong file/etc/postfix/virtual
. Để minh họa, lệnh sau sử dụngcontact@example.com
Ngoài ra, hãy đảm bảo thay đổi user @ email.com
thành một địa chỉ email hợp lệ mà bạn có quyền truy cập:
- cat ~/test_message | s-nail -s 'Test email subject line' -r contact@example.com user@email.com
Sau đó, chuyển đến hộp thư đến cho địa chỉ email mà bạn đã gửi tin nhắn. Bạn sẽ thấy tin nhắn của bạn đang chờ ở đó gần như ngay lập tức.
Lưu ý : Nếu thư không có trong hộp thư đến của bạn, nó có thể đã được chuyển đến folder Spam của bạn.
Bạn có thể xem các tin nhắn đã gửi của bạn trong khách hàng s-nail
của bạn. Bắt đầu lại ứng dụng client tương tác:
- s-nail
Từ ứng dụng email, xem các tin nhắn đã gửi của bạn bằng lệnh :
- file +sent
Bạn sẽ thấy kết quả như thế này:
Output+[/home/sammy/Maildir/]sent: 1 message 1 new ▸N 1 contact@example.com 2020-05-19 15:47 12/297 Test email subject line
Bạn có thể quản lý thư đã gửi bằng các lệnh tương tự mà bạn sử dụng cho thư đến.
Kết luận
Đến đây bạn đã cấu hình Postfix trên server Ubuntu 20.04 của bạn . Quản lý server email có thể là một nhiệm vụ khó khăn đối với các administrator hệ thống mới, nhưng với cấu hình này, bạn sẽ có đủ chức năng email MTA để bắt đầu.
Các tin liên quan
Cách cài đặt Composer trên Ubuntu 20.04 [Quickstart]2020-05-19
Cách cài đặt R trên Ubuntu 20.04 [Khởi động nhanh]
2020-05-19
Cách cài đặt và cấu hình Nextcloud trên Ubuntu 20.04
2020-05-18
Cách cài đặt và cấu hình Ansible trên Ubuntu 20.04
2020-05-15
Cách cài đặt R trên Ubuntu 18.04 [Khởi động nhanh]
2020-05-14
Cách thiết lập NFS Mount trên Ubuntu 20.04
2020-05-14
Cách cài đặt R trên Ubuntu 18.04
2020-05-14
Cách cài đặt R trên Ubuntu 20.04
2020-05-14
Cách cài đặt MariaDB trên Ubuntu 20.04
2020-05-12
Cách cài đặt MariaDB trên Ubuntu 18.04
2020-05-12