Tình trạng địa chỉ IP của mail server nằm trong các blacklist có lẽ không phải là xa lạ đối với quản trị viên hệ thống. Khi đó các email được gửi đi từ mail server sẽ bị cho là spam và không thể vào được hộp thư người dùng từ các công ty, tổ chức khác. Chính vì nguyên nhân này, hôm nay mình sẽ hướng dẫn bạn cách triển khai SMTP Relay sử dụng Postfix và nhà cung cấp dịch vụ SMTP Relay Mailjet. Với cách này, email đi ra ngoài Internet của bạn sẽ được mang nguồn IP sạch, không còn bị đánh giá là spam mỗi khi gửi tới đơn vị khác.
Chuẩn bị môi trường #
- OS: CentOS 8
- Địa chỉ IP nằm trong blacklist
- Tài khoản Mailjet (Free 200 mail/ngày)
Cài đặt Postfix SMTP Relay #
Đầu tiên, bạn cần cài đặt Postfix để triển khai SMTP Server:
sudo dnf install postfix |
Tiếp theo cài đặt các gói hỗ trợ cho SMTP Relay:
sudo dnf install cyrus-sasl-plain cyrus-sasl-md5 |
Kiểm tra thuộc tính relayhost của Postfix, mặc định sẽ chưa được cấu hình:
postconf relayhost |
bạn sẽ có kết quả chưa cấu hình như bên dưới:
relayhost = |
Tiếp theo bạn cần đăng nhập vào tài khoản Mailjet và lấy thông tin về relay host:
Bạn sẽ có thông tin SMTP Server cũng như thông tin xác thực như bên dưới:
Khi đó, bạn hãy cấu hình lại thuộc tính relayhost cho Postfix như sau:
sudo postconf -e "relayhost = in-v3.mailjet.com:587" |
Tiếp theo, thực hiện chỉnh sửa cấu hình của Postfix:
sudo nano /etc/postfix/main.cf |
Tìm kiếm và chỉnh sửa các dòng cấu hình như sau:
# outbound relay configurations smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous header_size_limit = 4096000 |
Lưu lại file cấu hình, tiếp tục tạo file /etc/postfix/sasl_passwd như sau:
sudo nano /etc/postfix/sasl_passwd |
Thêm vào file thông tin sau:
in-v3.mailjet.com:587 api-key:secret-key |
Trong đó api-key và secret-key được lấy từ tài khoản Mailjet của bạn ở trên. Lưu lại file cấu hình và thực thi câu lệch sau để chuyển đổi file thành định dạng Postfix có thể đọc được:
sudo postmap /etc/postfix/sasl_passwd |
Bạn sẽ thấy xuất hiện file mới trong thư mục là /etc/postfix/sasl_passwd.db. Khởi động lại Postfix để làm mới cấu hình:
sudo systemctl restart postfix |
Tiếp theo, bạn cần chỉnh lại quyền hạn cho các file để đảm bảo tính bảo mật:
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db |
Thêm Sender Domain cần relay #
Để sử dụng được dịch vụ relay mail, bạn phải xác thực domain với Mailjet. Truy cập vào dashboard của Mailjet và chọn manage sender addresses để xác thực domain:
Mailjet yêu cầu bạn phải cấu hình SPF và DKIM cho domain bạn muốn relay. Do vậy, bạn hãy vào setup domain authentication để xem thông tin SPF và DKIM cần cấu hình:
Bạn hãy truy cập vào trang quản trị DNS của domain và thực hiện cấu hình thêm SPF và DKIM theo yêu cầu của Mailjet. Sau khi các bản ghi đó có hiệu lực thì bạn có thể kiểm tra lại trên dashboard như bên dưới:
Như vậy là bạn có thể relay mail thông qua dịch vụ của Mailjet rồi. Thực hiện kiểm tra thử như sau:
sudo dnf install mailx echo "this is a test email from tel4vn center" | mailx -r from-address -s hello to-address |
Với from-address là địa chỉ email có domain là domain bạn đã xác thực với Mailjet và to-address là địa chỉ email người nhận.
Kết luận #
Như vậy, thông qua bài viết này, mình đã hướng dẫn bạn cấu hình SMTP Relay sử dụng Postfix và dịch vụ của Mailjet. Cuối cùng, bất kì thắc mắc hay lỗi cấu hình nào thì bạn hãy bình luận bên dưới để mình giải đáp nhé.
Nguồn bài viết: https://www.linuxbabe.com/