Hướng Dẫn Cấu Hình SMTP Hoàn Chỉnh: Cổng, Xác Thực và Thiết Lập Máy Chủ Email

Minh họa bảo mật mạng với xác thực, máy chủ được bảo vệ bằng khiên và ổ khóa, cổng máy chủ trên nền xanh đậm

Cấu hình SMTP là quá trình thiết lập máy chủ thư của bạn (hoặc ứng dụng email) để gửi tin nhắn một cách chính xác bằng cách sử dụng Giao thức Truyền Thư Đơn giản. Làm đúng và email của bạn sẽ đến hộp thư đến. Làm sai và bạn sẽ gặp phải lỗi gửi, lỗi xác thực hoặc tin nhắn im lặng rơi vào thư mục spam. Ba điều bạn cần làm đúng mỗi lần là cổng đúng, phương pháp mã hóa đúng và thông tin xác thực hoạt động.

SMTP Thực Sự Làm Gì

SMTP là giao thức mà ứng dụng email hoặc ứng dụng của bạn sử dụng để gửi tin nhắn đi tới máy chủ thư, sau đó máy chủ sẽ định tuyến chúng tới người nhận. Nó chỉ xử lý phía gửi. Nhận email được xử lý bởi các giao thức riêng biệt: IMAP (để đồng bộ hóa) hoặc POP3 (để tải xuống).

Khi bạn nhấn "Gửi", ứng dụng của bạn mở kết nối TCP tới máy chủ SMTP, xác thực, gửi tin nhắn và ngắt kết nối. Máy chủ sau đó cố gắng gửi tin nhắn đó tới máy chủ thư của người nhận bằng cách sử dụng cùng một giao thức, tìm kiếm bản ghi MX (Mail Exchange) DNS của đích đến để tìm nơi gửi.

SMTP được xác định trong RFC 5321 , thay thế RFC 2821 gốc. Hiểu rõ các thông số kỹ thuật sẽ giúp ích khi bạn cần gỡ lỗi các cuộc trò chuyện SMTP thô hoặc cấu hình máy chủ từ đầu.

Giải Thích Cổng SMTP: 25, 465 và 587

Có ba cổng mà bạn sẽ gặp trong bất kỳ cấu hình SMTP nào. Mỗi cái có một vai trò cụ thể, và sử dụng cái sai là một trong những nguyên nhân phổ biến nhất gây ra lỗi gửi email.

Cổng Tên Mã Hóa Sử Dụng Điển Hình
25 SMTP Không Có (hoặc STARTTLS) Chuyển Tiếp Máy Chủ Sang Máy Chủ (MTA sang MTA)
465 SMTPS SSL/TLS Ngầm Gửi Khách Hàng Kế Thừa (ứng dụng cũ hơn)
587 Gửi STARTTLS (TLS Tường Minh) Gửi Email Khách Hàng Được Xác Thực

Cổng 25 vs 587: Bạn Nên Sử Dụng Cái Nào?

Cổng 25 là cổng SMTP gốc, được xác định từ năm 1982. Nó được thiết kế để các máy chủ thư giao tiếp với nhau, không phải để người dùng cuối gửi thư. Hầu hết các nhà cung cấp dịch vụ Internet và nhà cung cấp đám mây chặn cổng 25 đi từ các IP lưu trữ chung và dân cư cụ thể để ngăn chặn spam. Nếu bạn đang chạy một ứng dụng gửi email, việc cố gắng sử dụng cổng 25 gần như chắc chắn sẽ thất bại.

Cổng 587 là lựa chọn đúng để gửi email từ ứng dụng hoặc máy khách. Nó được chuẩn hóa trong RFC 6409 là cổng "gửi tin nhắn" chuyên dụng. Nó yêu cầu STARTTLS, có nghĩa là kết nối bắt đầu không được mã hóa và sau đó nâng cấp lên TLS trước khi gửi bất kỳ thông tin xác thực nào. Đây là những gì Gmail, Outlook và hầu hết mọi nhà cung cấp email hiện đại mong đợi bạn sử dụng.

Không bao giờ gửi thông tin xác thực qua kết nối không được mã hóa. Nếu máy khách SMTP của bạn quay lại văn bản thuần túy khi STARTTLS thất bại, nó sẽ truyền tên người dùng và mật khẩu của bạn một cách rõ ràng. Luôn cấu hình máy khách của bạn để yêu cầu TLS và từ chối kết nối nếu không thể thiết lập mã hóa.

Cổng SMTP 465: Cổng SSL Kế Thừa

Cổng 465 có một lịch sử bất thường. Nó được gán tạm thời cho SMTPS (SMTP qua SSL) vào năm 1997, sau đó việc gán đó bị thu hồi vào năm 1998 khi STARTTLS trên cổng 587 trở thành phương pháp ưa thích. Mặc dù bị chính thức loại bỏ, nhiều máy chủ thư vẫn tiếp tục hỗ trợ nó, và nó được đăng ký lại bởi IANA cho một mục đích khác.

Trong thực tế, hầu hết các nhà cung cấp vẫn chấp nhận kết nối trên cổng 465 bằng cách sử dụng SSL/TLS ngầm. Điều này có nghĩa là TLS bao bọc toàn bộ kết nối từ byte đầu tiên, thay vì nâng cấp giữa bắt tay như STARTTLS. Một số ứng dụng cũ hơn và phần cứng (máy in mạng nhất định, CRM kế thừa) chỉ hỗ trợ cổng 465, vì vậy nó vẫn hữu ích trong những trường hợp đó.

  • Sử dụng cổng 465 nếu ứng dụng hoặc thiết bị của bạn đặc biệt yêu cầu SSL ngầm và không thể thực hiện STARTTLS.
  • Sử dụng cổng 587 cho mọi thứ khác. Đây là tiêu chuẩn hiện đại.
  • Tránh cổng 25 hoàn toàn để gửi máy khách.

Xác Thực SMTP: Cách Hoạt Động

Xác thực SMTP (thường được viết là SMTP AUTH) được xác định trong RFC 4954 . Nó yêu cầu máy khách chứng minh danh tính của nó trước khi máy chủ chấp nhận thư đi. Không có nó, bất kỳ ai có thể tiếp cận máy chủ của bạn đều có thể sử dụng nó để gửi spam, đó là lý do tại sao các relay mở được coi là một vấn đề bảo mật nghiêm trọng.

Các cơ chế xác thực phổ biến nhất mà bạn sẽ thấy trong cấu hình SMTP là:

  • PLAIN: Gửi tên người dùng và mật khẩu được mã hóa base64. An toàn chỉ qua kết nối được mã hóa (TLS phải hoạt động trước).
  • LOGIN: Tương tự như PLAIN nhưng gửi tên người dùng và mật khẩu dưới dạng các trao đổi riêng biệt. Cũng yêu cầu TLS.
  • CRAM-MD5: Một cơ chế thách thức-phản hồi tránh gửi mật khẩu trực tiếp. Ít phổ biến hơn trên các máy chủ hiện đại.
  • XOAUTH2: Được sử dụng bởi Gmail và các tài khoản Google Workspace khác. Thay vì mật khẩu, bạn cung cấp token truy cập OAuth 2.0. Đây là những gì bạn cần khi "quyền truy cập ứng dụng kém an toàn" bị vô hiệu hóa.
Mật khẩu ứng dụng vs. mật khẩu chính của bạn: Gmail, Outlook và Yahoo đều hỗ trợ mật khẩu dành riêng cho ứng dụng cho các máy khách SMTP không hỗ trợ OAuth. Tạo một mật khẩu từ cài đặt bảo mật tài khoản của bạn và sử dụng nó thay vì mật khẩu thực của bạn. Nó có thể được thu hồi độc lập mà không cần thay đổi thông tin xác thực chính của bạn.

Thiết Lập Máy Chủ Email Từng Bước

Cho dù bạn đang cấu hình máy khách email như Thunderbird, ứng dụng web gửi email giao dịch hay máy chủ thư tự lưu trữ, quy trình tuân theo cùng một chuỗi logic.

Cho Máy Khách Email và Ứng Dụng

  1. Lấy tên máy chủ SMTP từ nhà cung cấp của bạn. Ví dụ: smtp.gmail.com , smtp.office365.com , mail.yourdomain.com .
  2. Chọn cổng đúng. Sử dụng 587 với STARTTLS làm mặc định của bạn. Quay lại 465 với SSL chỉ nếu ứng dụng của bạn yêu cầu.
  3. Nhập thông tin xác thực của bạn. Đây thường là địa chỉ email đầy đủ của bạn làm tên người dùng cộng với mật khẩu hoặc mật khẩu ứng dụng.
  4. Đặt phương pháp mã hóa. Khớp với cổng: STARTTLS cho 587, SSL/TLS cho 465.
  5. Kiểm tra kết nối. Hầu hết các máy khách email có nút "Kiểm Tra Cài Đặt Tài Khoản" hoặc "Xác Minh". Sử dụng nó trước khi lưu.

Cho Máy Chủ Thư Tự Lưu Trữ (Ví Dụ Postfix)

Nếu bạn đang chạy máy chủ của riêng bạn với Postfix, cấu hình SMTP cốt lõi nằm trong /etc/postfix/main.cf . Đây là một ví dụ tối thiểu hoạt động cho máy chủ chuyển tiếp qua nhà cung cấp SMTP của bên thứ ba:

# /etc/postfix/main.cf - Basic relay configuration

relayhost = [smtp.sendgrid.net]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_use_tls = yes

Sau khi chỉnh sửa, tạo /etc/postfix/sasl_passwd với thông tin xác thực của bạn, chạy postmap /etc/postfix/sasl_passwd để băm nó, sau đó tải lại Postfix bằng systemctl reload postfix .

Khóa sasl_passwd ngay lập tức. Chạy chmod 600 /etc/postfix/sasl_passwd chmod 600 /etc/postfix/sasl_passwd.db sau khi tạo tệp. Các tệp thông tin xác thực có thể đọc được là một cấu hình máy chủ phổ biến sai.

Cài Đặt SMTP Phổ Biến Cho Các Nhà Cung Cấp Phổ Biến

Nhà Cung Cấp Máy Chủ SMTP Cổng Mã Hóa Ghi Chú Xác Thực
Gmail smtp.gmail.com 587 STARTTLS Sử Dụng Mật Khẩu Ứng Dụng Hoặc OAuth2
Gmail (thay thế) smtp.gmail.com 465 SSL/TLS Sử Dụng Mật Khẩu Ứng Dụng Hoặc OAuth2
Microsoft 365 smtp.office365.com 587 STARTTLS Xác Thực Hiện Đại / Mật Khẩu Ứng Dụng
Yahoo Mail smtp.mail.yahoo.com 465 SSL/TLS Cần Mật Khẩu Ứng Dụng
Zoho Mail smtp.zoho.com 587 STARTTLS Email Đầy Đủ Làm Tên Người Dùng
Amazon SES email-smtp.us-east-1.amazonaws.com 587 STARTTLS Thông Tin Xác Thực SMTP IAM

Khắc Phục Sự Cố Kết Nối SMTP

Hầu hết các lỗi SMTP rơi vào một số loại nhỏ. Trước khi tìm hiểu các nhật ký, hãy kiểm tra xem cổng có thực sự có thể tiếp cận được từ máy chủ hoặc mạng của bạn không. Tường lửa hoặc chặn ISP thường là nguyên nhân, và bạn có thể xác nhận nó nhanh chóng mà không cần bất kỳ công cụ đặc biệt nào.

Bạn có thể xác minh xem cổng SMTP có mở trên máy chủ thư của bạn bằng cách sử dụng trình kiểm tra cổng trực tuyến miễn phí. Nhập tên máy chủ hoặc địa chỉ IP máy chủ thư của bạn, chọn cổng 25, 465 hoặc 587 và chạy bài kiểm tra. Nếu kết quả trở lại là đóng hoặc hết thời gian chờ, vấn đề là ở cấp độ mạng (tường lửa, chặn ISP hoặc dịch vụ không chạy) chứ không phải là lỗi cấu hình trong ứng dụng của bạn.

Thông Báo Lỗi Phổ Biến và Ý Nghĩa Của Chúng

  • Kết Nối Bị Từ Chối / Hết Thời Gian Chờ Kết Nối: Cổng bị chặn hoặc dịch vụ không lắng nghe. Kiểm tra quy tắc tường lửa của bạn và xác nhận rằng daemon SMTP đang chạy.
  • 535 Xác Thực Thất Bại: Tên người dùng hoặc mật khẩu sai. Đối với Gmail, điều này thường có nghĩa là bạn cần mật khẩu ứng dụng, không phải mật khẩu tài khoản của bạn.
  • 550 5.7.1 Relay Truy Cập Bị Từ Chối: Máy chủ của bạn không được cấu hình để chuyển tiếp thư cho địa chỉ người gửi đó, hoặc xác thực không xảy ra trước lệnh MAIL FROM.
  • 421 Quá Nhiều Kết Nối: Máy chủ nhận đang giới hạn tốc độ bạn. Giảm tần suất gửi hoặc triển khai hàng đợi với độ trễ.
  • Bắt Tay TLS Thất Bại: Không khớp chứng chỉ hoặc phiên bản TLS lỗi thời. Kiểm tra xem chứng chỉ SSL của máy chủ có hợp lệ không và rằng bạn không cố gắng sử dụng TLS 1.0 hoặc 1.1, mà hầu hết các nhà cung cấp đã vô hiệu hóa.

Danh Sách Kiểm Tra Chẩn Đoán Nhanh

  1. Xác nhận cổng SMTP mở và có thể tiếp cận được từ môi trường gửi của bạn.
  2. Xác minh tên máy chủ phân giải đúng bằng nslookup smtp.yourdomain.com .
  3. Kiểm tra xem IP gửi của bạn có nằm trên danh sách chặn bằng cách sử dụng công cụ như Kiểm Tra Danh Sách Đen MXToolbox .
  4. Xác nhận bản ghi DNS SPF, DKIM và DMARC của bạn được xuất bản đúng. Các bản ghi bị thiếu hoặc bị hỏng khiến thư hợp pháp bị từ chối hoặc bị loại bỏ.
  5. Xem xét nhật ký máy chủ thư của bạn. Đối với Postfix, hãy kiểm tra /var/log/mail.log . Các mã phản hồi SMTP thực tế trong nhật ký cho bạn biết chính xác những gì máy chủ từ xa đã từ chối và lý do tại sao.
SPF, DKIM và DMARC quan trọng như cài đặt SMTP của bạn. Ngay cả máy chủ SMTP được cấu hình hoàn hảo cũng sẽ gặp sự cố về khả năng gửi nếu các bản ghi DNS này bị thiếu. SPF cho các máy chủ nhận biết IP nào được phép gửi cho miền của bạn. DKIM thêm chữ ký mã hóa vào các tin nhắn đi. DMARC cho các máy chủ nhận biết cách xử lý khi bất kỳ kiểm tra nào không thành công.
Công cụ kiểm tra cổng trực tuyến xác minh trạng thái cổng SMTP cho thiết lập máy chủ email

Cổng SMTP Của Bạn Có Thực Sự Mở Không?

Trước khi đổ lỗi cho cấu hình smtp của bạn, hãy xác nhận rằng vấn đề không phải là cổng bị chặn. Trình kiểm tra cổng miễn phí của chúng tôi cho phép bạn kiểm tra cổng 25, 465 hoặc 587 trên bất kỳ máy chủ thư nào ngay lập tức, vì vậy bạn biết liệu bạn đang xử lý vấn đề tường lửa hay lỗi cấu hình.

Kiểm Tra Cổng SMTP Của Bạn Ngay Bây Giờ →

Cổng 465 sử dụng SSL/TLS ngầm, có nghĩa là toàn bộ kết nối được mã hóa từ đầu. Cổng 587 sử dụng STARTTLS, bắt đầu như một kết nối thuần túy và sau đó nâng cấp lên TLS trước khi gửi thông tin xác thực. Cả hai đều an toàn khi được cấu hình đúng, nhưng cổng 587 là tiêu chuẩn hiện đại được khuyên dùng cho gửi email máy khách. Chỉ sử dụng 465 nếu ứng dụng của bạn cụ thể yêu cầu SSL ngầm và không thể hỗ trợ STARTTLS.

Cổng 25 bị chặn trên hầu hết các mạng lưu trữ chung và dân cư vì nó từng được sử dụng để gửi spam trực tiếp từ các máy bị xâm phạm. Bằng cách chặn cổng 25 đi, các nhà cung cấp dịch vụ Internet và nhà cung cấp đám mây (bao gồm AWS EC2 theo mặc định) ngăn chặn phạm vi IP của họ không bị sử dụng làm nguồn spam. Để gửi email từ các ứng dụng, hãy sử dụng cổng 587. Nếu bạn đang chạy máy chủ thư hợp pháp cần cổng 25 mở cho chuyển tiếp máy chủ sang máy chủ, bạn thường cần yêu cầu nhà cung cấp của bạn nâng cấp chặn.

Trong hầu hết các trường hợp, tên người dùng SMTP của bạn là địa chỉ email đầy đủ của bạn, ví dụ you@yourdomain.com . Một số hệ thống cũ hơn chỉ sử dụng phần cục bộ trước dấu @. Đối với các dịch vụ như Amazon SES, tên người dùng là thông tin xác thực SMTP do IAM tạo ra, không phải địa chỉ email của bạn. Luôn kiểm tra tài liệu cho nhà cung cấp cụ thể của bạn. Khi sử dụng Gmail hoặc Outlook với xác thực hai yếu tố được bật, bạn sẽ cần tạo mật khẩu dành riêng cho ứng dụng thay vì sử dụng mật khẩu tài khoản thông thường của bạn.

Bạn có thể kiểm tra ở nhiều cấp độ. Trước tiên, kiểm tra xem cổng SMTP có thể tiếp cận được bằng cách sử dụng công cụ kiểm tra cổng hoặc chạy telnet smtp.yourdomain.com 587 từ máy chủ của bạn. Nếu cổng mở, bạn có thể kiểm tra bắt tay SMTP đầy đủ bằng cách sử dụng openssl s_client -starttls smtp -connect smtp.yourdomain.com:587 , hiển thị chứng chỉ TLS và cho phép bạn nhập các lệnh SMTP thô. Để kiểm tra end-to-end đầy đủ mà không gửi đến hộp thư thực, hãy sử dụng dịch vụ như Mailtrap, chấp nhận kết nối SMTP và hiển thị tin nhắn mà không chuyển tiếp nó.

Xác thực SMTP thành công chỉ chứng minh rằng bạn được phép sử dụng máy chủ. Lọc spam xảy ra riêng biệt ở đầu nhận và dựa trên sự kết hợp của các yếu tố: liệu IP gửi của bạn có nằm trên danh sách chặn không, liệu bản ghi SPF của bạn có cho phép IP đó gửi cho miền của bạn không, liệu chữ ký DKIM của bạn có hợp lệ và khớp với bản ghi DNS của bạn không, và liệu chính sách DMARC của bạn có được xuất bản không. Chỉ một bản ghi SPF bị thiếu hoặc bị hỏng cũng đủ khiến Gmail hoặc Outlook loại bỏ tin nhắn của bạn. Kiểm tra cả ba bản ghi DNS và xác minh danh tiếng IP gửi của bạn.

Có, nhưng có những hạn chế. Máy chủ SMTP của Gmail ( smtp.gmail.com trên cổng 587) sẽ gửi thư được xác thực dưới dạng tài khoản Gmail của bạn. Nếu bạn muốn địa chỉ "Từ" hiển thị miền tùy chỉnh của bạn, bạn cần thêm địa chỉ đó vào cài đặt Gmail dưới "Gửi thư dưới dạng" và xác minh quyền sở hữu. Tuy nhiên, Gmail thêm chú thích "được gửi qua gmail.com" có thể nhìn thấy trong một số máy khách email. Để thiết lập sạch hơn với miền của riêng bạn, sử dụng nhà cung cấp email giao dịch như Amazon SES hoặc relay SMTP chuyên dụng là lựa chọn tốt hơn về lâu dài.