Để cấu hình Nginx để gửi email từ ứng dụng web, chúng ta cần sử dụng một module gọi là “mail module”. Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt và cấu hình module này trên Nginx.
Bước 1: Cài đặt mail module
Đầu tiên, chúng ta cần chắc chắn rằng Nginx đã được cài đặt với module “mail” được bật.
Bạn có thể kiểm tra bằng cách chạy lệnh sau trên máy chủ Nginx: nginx -V
Nếu bạn thấy --with-mail
trong đầu ra, module đã được cài đặt.
Nếu module không được cài đặt, bạn có thể cài đặt lại Nginx với module “mail” bằng cách sử dụng lệnh sau: ./configure --with-mail
make
make install
Bước 2: Cấu hình ứng dụng web để sử dụng mail module
Để cấu hình ứng dụng web của bạn để sử dụng mail module, bạn cần thêm các khối cấu hình sau vào tệp cấu hình Nginx (thông thường là /etc/nginx/nginx.conf
hoặc /etc/nginx/conf.d/default.conf
):
mail {
server_name example.com;
auth_http 127.0.0.1:8000/auth; # Thay đổi địa chỉ IP và cổng tương ứng
ssl_starttls on;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:mail:10m;
ssl_dhparam /etc/ssl/private/dhparams.pem;
server {
listen 25;
protocol smtp;
proxy_pass_error_message on;
smtp_auth login plain;
smtp_capabilities "SIZE 10485760";
xclient off;
starttls on;
proxy on;
proxy_pass_error_message on;
}
}
Trong khối cấu hình trên, bạn cần thay đổi example.com
thành tên miền thực tế của bạn và cung cấp địa chỉ IP và cổng cho auth_http
(được sử dụng để xác thực).
Cần chỉnh sửa các đường dẫn đến chứng chỉ SSL (ssl_certificate
và ssl_certificate_key
) để trỏ đến chứng chỉ SSL của bạn.
Bước 3: Khởi động lại Nginx
Sau khi cấu hình xong, bạn cần khởi động lại Nginx để áp dụng các thay đổi: service nginx restart
Sau khi hoàn thành các bước trên, ứng dụng web của bạn sẽ được cấu hình để gửi email từ Nginx sử dụng mail module. Bạn có thể sử dụng các thư viện và công cụ phù hợp trong ứng dụng web của mình để gửi email thông qua Nginx.
Lưu ý: Việc gửi email từ Nginx chỉ hỗ trợ giao thức SMTP và không cung cấp chức năng như quản lý hộp thư đến, gửi email theo hàng loạt, v.v. Để có các tính năng phức tạp hơn, bạn có thể xem xét sử dụng các giải pháp email server chuyên dụng như Postfix hoặc Sendmail.