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  sudovà 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 0vô 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: đặtMaildirfolder vào nội bộfolderbiến
-  set record=+senttạ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-rcho 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 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 [Khởi động nhanh]
2020-05-14
Cách cài đặt R trên Ubuntu 20.04
2020-05-14
Cách cài đặt R trên Ubuntu 18.04
2020-05-14
Cách nâng cấp lên Ubuntu 20.04 Focal Fossa
2020-05-12
Cách cài đặt MariaDB trên Ubuntu 20.04
2020-05-12
 

