Vì sao gửi qua cổng 587 và 465
Cổng 25 là cổng các máy chủ email chuyển thư cho nhau. Nếu gửi thẳng từ máy chủ tới máy chủ email phía nhận, bạn phải tự lo cả uy tín IP, DNS ngược, quản lý lượng gửi, và email gửi từ IP máy chủ mới dễ vào thư rác.
Cổng 587 và 465 là cổng gửi thư dành cho người dùng đã đăng nhập. Đăng nhập dịch vụ gửi email bằng tên đăng nhập và mật khẩu rồi giao thư, máy chủ gửi có uy tín được quản lý sẽ chuyển thay bạn. Đây là cách chắc chắn nhất để các email như xác nhận đăng ký, quên mật khẩu, thông báo đơn hàng đến hộp thư đến.
- Cổng 587: kết nối dạng thường rồi bắt đầu mã hóa bằng STARTTLS. Là cổng mặc định của hầu hết dịch vụ và chương trình.
- Cổng 465: kết nối được mã hóa bằng TLS ngay từ đầu. Trên màn hình cấu hình thường hiển thị là SSL hoặc SSL/TLS.
Chọn dịch vụ gửi email
Dịch vụ gửi email chia hai loại chính. Một là dịch vụ email giao dịch gửi số lượng lớn email thông báo của trang web và ứng dụng, hai là chức năng SMTP của tài khoản email công ty hoặc cá nhân bạn đang dùng. Loại nào cũng vậy, nhận đủ bốn thông tin dưới đây là sẵn sàng cấu hình.
- Địa chỉ máy chủ SMTP: ví dụ smtp.example.com
- Cổng: 587 (STARTTLS) hoặc 465 (SSL/TLS)
- Tên người dùng: tên đăng nhập hoặc địa chỉ email do dịch vụ cấp
- Mật khẩu: mật khẩu riêng cho SMTP hoặc khóa API của dịch vụ
Cửa hàng hay dịch vụ gửi nhiều email thì dịch vụ email giao dịch tiện hơn vì lo cả lịch sử gửi, xử lý thư trả về, quản lý hủy đăng ký. Vài email thông báo thì SMTP của tài khoản email cũng đủ.
Kiểm tra kết nối SMTP từ máy chủ
Trước khi cấu hình, kiểm tra kết nối từ máy chủ tới dịch vụ gửi có ổn không. Các lệnh dưới đây chỉ kiểm tra kết nối, không gửi email.
nc -vz smtp.example.com 587
openssl s_client -starttls smtp -connect smtp.example.com:587 -crlf -quiet
openssl s_client -connect smtp.example.com:465 -crlf -quietNếu dòng đầu hiện succeeded hoặc open, và lệnh openssl hiện lời chào của máy chủ bắt đầu bằng 220 là đã sẵn sàng. Thoát bằng Ctrl+C. Nếu không có lệnh nc, Ubuntu và Debian cài bằng apt install -y netcat-openbsd, AlmaLinux bằng dnf install -y nmap-ncat.
Kết nối Postfix với dịch vụ gửi
Để gom về một nơi các email do chương trình trên máy chủ, thông báo cron, lệnh mail gửi, hãy cấu hình Postfix làm relay chuyển sang dịch vụ gửi. Mọi email trong máy chủ đều đăng nhập qua cổng 587 để đi ra.
Bước 1. Cài đặt
apt install -y postfix libsasl2-modules mailutilsKhi cài nếu được hỏi loại cấu hình email, chọn Internet Site, tên email thì điền tên miền của bạn. AlmaLinux 10 cài bằng dnf install -y postfix cyrus-sasl-plain s-nail và bật bằng systemctl enable --now postfix.
Bước 2. Cấu hình relay
postconf -e 'relayhost = [smtp.example.com]:587'
postconf -e 'smtp_sasl_auth_enable = yes'
postconf -e 'smtp_sasl_password_maps = texthash:/etc/postfix/sasl_passwd'
postconf -e 'smtp_sasl_security_options = noanonymous'
postconf -e 'smtp_tls_security_level = encrypt'
postconf -e 'inet_interfaces = loopback-only'inet_interfaces = loopback-only chỉ nhận email gửi từ trong máy chủ, để bên ngoài không dùng được máy chủ này làm trạm chuyển thư.
Bước 3. Lưu thông tin đăng nhập
echo '[smtp.example.com]:587 SMTP_USER:SMTP_PASSWORD' > /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
systemctl restart postfixNếu dịch vụ dùng cổng 465, đổi cổng trong relayhost và sasl_passwd thành 465 và thêm một dòng postconf -e 'smtp_tls_wrappermode = yes'.
Bước 4. Gửi thử và kiểm tra nhật ký
echo "VPS mail test" | mail -s "Test from VPS" you@example.com
postqueue -p
journalctl -t postfix/smtp -n 20Nếu nhật ký có status=sent là dịch vụ gửi đã nhận email. postqueue -p hiển thị danh sách email chưa gửi đi được. Nếu đã sửa thông tin đăng nhập, chạy systemctl restart postfix rồi gửi lại bằng postqueue -f.
Cấu hình SMTP trong WordPress và ứng dụng
Hầu hết trang web và ứng dụng đều có ô cấu hình SMTP, nên không cần đặt Postfix trên máy chủ mà kết nối thẳng tới dịch vụ gửi. Với WordPress, cài plugin SMTP và điền các giá trị dưới đây là email đăng ký và quên mật khẩu đi qua dịch vụ đó.
- SMTP host: địa chỉ dịch vụ gửi
- Mã hóa: cổng 587 thì TLS (STARTTLS), cổng 465 thì SSL
- Cổng: 587 hoặc 465
- Xác thực: bật, nhập tên người dùng và mật khẩu
- Địa chỉ người gửi: địa chỉ thuộc tên miền của bạn (ví dụ: no-reply@example.com)
Ứng dụng Node.js, PHP, Python cũng cấu hình thư viện email bằng cùng các giá trị. Không ghi thẳng mật khẩu vào mã mà đưa vào biến môi trường hoặc tệp cấu hình là gọn gàng. Cài WordPress có trong hướng dẫn cài WordPress.
Thêm SPF, DKIM, DMARC vào DNS tên miền
Máy chủ email phía nhận kiểm tra bằng bản ghi DNS xem email có thật sự đến từ nơi tên miền của bạn cho phép không. Thêm ba bản ghi này là tỷ lệ vào hộp thư đến tăng rõ rệt.
- SPF: danh sách máy chủ được phép gửi email của tên miền bạn. Đưa giá trị include mà dịch vụ gửi cung cấp vào một bản ghi TXT.
- DKIM: chữ ký điện tử gắn vào email. Điền nguyên bản ghi TXT hoặc CNAME do màn hình dịch vụ gửi tạo cho bạn.
- DMARC: quyết định xử lý email không qua kiểm tra SPF và DKIM thế nào. Lúc đầu bắt đầu bằng cấu hình chỉ nhận báo cáo như dưới đây.
_dmarc.example.com TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"Sau vài tuần xem báo cáo và thấy mọi email đều qua, nâng lên p=quarantine, rồi p=reject để chặn giả mạo tên miền.
Nhận email và bước tiếp theo
Để nhận email gửi đến tên miền của bạn, thêm bản ghi MX của dịch vụ hosting email vào tên miền. Email đến do hosting email lo, email thông báo gửi đi do dịch vụ gửi lo, máy chủ chỉ tập trung vào trang web và ứng dụng.
Cách gửi qua dịch vụ gửi email này, dù chuyển hay tạo máy chủ mới cũng chỉ cần chuyển vài dòng cấu hình là tiếp tục. IP máy chủ đổi thì uy tín gửi vẫn nằm phía dịch vụ, nên khi chuyển trang sang khu vực khác tỷ lệ đến hộp thư cũng không dao động.
Các cổng khác mở tự do theo dịch vụ. Cách chỉ mở cổng cần dùng có trong hướng dẫn tường lửa cơ bản, quy tắc sử dụng máy chủ có trong chính sách sử dụng.
