RFC 3463: Mã Trạng Thái Hệ Thống Thư Nâng Cao
ELI5: SMTP cơ bản cung cấp cho bạn mã trả lời ba chữ số như "550" có nghĩa là "điều gì đó đã thất bại." Nhưng tại sao nó lại thất bại? Địa chỉ sai? Hộp thư đầy? Máy chủ quá tải? Mã trạng thái nâng cao thêm mã ba phần cụ thể hơn như `5.1.1` (hộp thư đích xấu) để phần mềm của bạn có thể phân biệt sự khác biệt và thực hiện hành động đúng.
Tại sao tồn tại điều này
Các mã trả lời SMTP (RFC 5321) sử dụng số ba chữ số: 250 có nghĩa là thành công, 550 có nghĩa là thất bại vĩnh viễn, 421 có nghĩa là vấn đề tạm thời. Nhưng những mã này quá sơ khai để xử lý tự động. "550" có thể có nghĩa là:
- Hộp thư không tồn tại
- Tên miền không tồn tại
- Người gửi bị chặn theo chính sách
- Nội dung tin nhắn bị từ chối
Mỗi trường hợp này yêu cầu một phản hồi khác nhau từ người gửi. Các mã trạng thái được tăng cường giải quyết vấn đề này bằng cách thêm mã class.subject.detail có cấu trúc để xác định chính xác vấn đề. Những mã này xuất hiện trong các phản hồi SMTP (thông qua tiện ích mở rộng ENHANCEDSTATUSCODES) và trong báo cáo DSN (RFC 3464) trong trường Status.
Cách thức hoạt động
Các mã trạng thái được tăng cường tuân theo định dạng X.Y.Z trong đó mỗi thành phần có ý nghĩa được xác định:
Cấu trúc mã
| Thành phần | Tên | Ý nghĩa |
|---|---|---|
X |
Lớp | Thành công (2), thất bại tạm thời (4), hoặc thất bại vĩnh viễn (5) |
Y |
Chủ đề | Danh mục của vấn đề (địa chỉ, hộp thư, hệ thống thư, mạng, giao thức, nội dung, bảo mật) |
Z |
Chi tiết | Điều kiện cụ thể trong danh mục |
Ví dụ phản hồi SMTP
RCPT TO:<user@example.org> 550 5.1.1 The email account that you tried to reach does not exist ^^^^^ | | | +-- chi tiết 1 = địa chỉ hộp thư đích không hợp lệ +------ chủ đề 1 = trạng thái địa chỉ lớp 5 = thất bại vĩnh viễn
Trong báo cáo DSN
Final-Recipient: rfc822;user@example.org Action: failed Status: 5.1.1 Diagnostic-Code: smtp; 550 5.1.1 User unknown
Chi tiết kỹ thuật chính
Giá trị lớp
| Lớp | Ý nghĩa | Hành động của người gửi |
|---|---|---|
2.X.X |
Thành công | Tin nhắn đã được chấp nhận hoặc gửi. Không cần hành động. |
4.X.X |
Thất bại tạm thời kéo dài | Thử lại sau. Điều kiện có thể tự động giải quyết. |
5.X.X |
Thất bại vĩnh viễn | Dừng thử lại. Tin nhắn sẽ không bao giờ được gửi tới địa chỉ này như hiện tại. |
Giá trị chủ đề
| Chủ đề | Danh mục | Ví dụ |
|---|---|---|
X.0.X |
Khác / Không xác định | Không được phân loại khác |
X.1.X |
Địa chỉ | Hộp thư không hợp lệ, tên miền không hợp lệ, người gửi không hợp lệ |
X.2.X |
Hộp thư | Hộp thư đầy, bị vô hiệu hóa, không chấp nhận tin nhắn |
X.3.X |
Hệ thống thư | Hệ thống thư đầy, không chấp nhận tin nhắn, không có khả năng các tính năng được chọn |
X.4.X |
Mạng và định tuyến | Không có phản hồi từ máy chủ, kết nối xấu, lỗi định tuyến |
X.5.X |
Giao thức gửi thư | Lệnh không hợp lệ, lỗi cú pháp giao thức |
X.6.X |
Nội dung tin nhắn | Không hỗ trợ phương tiện, chuyển đổi không thành công |
X.7.X |
Bảo mật / Chính sách | Cần xác thực, người gửi bị chặn, cần mã hóa |
Mã phổ biến nhất cho người gửi email
| Mã | Ý nghĩa | Hành động |
|---|---|---|
5.1.1 |
Địa chỉ hộp thư đích không hợp lệ | Xóa khỏi danh sách (phản hồi cứng) |
5.1.2 |
Địa chỉ hệ thống đích không hợp lệ (tên miền) | Xóa khỏi danh sách |
5.2.1 |
Hộp thư bị vô hiệu hóa, không chấp nhận tin nhắn | Xóa khỏi danh sách |
4.2.2 |
Hộp thư đầy | Thử lại sau; chặn sau khi thất bại lặp đi lặp lại |
5.7.1 |
Gửi không được phép, tin nhắn bị từ chối | Kiểm tra xác thực và danh tiếng người gửi |
4.7.1 |
Thất bại xác thực tạm thời | Thử lại; kiểm tra bản ghi SPF/DKIM/DMARC |
5.7.26 |
Vi phạm chính sách DMARC | Sửa căn chỉnh DMARC (SPF hoặc DKIM phải vượt qua với tên miền được căn chỉnh) |
5.7.27 |
Địa chỉ người gửi có MX rỗng | Thêm bản ghi MX hoặc A hợp lệ cho tên miền gửi của bạn |
4.4.1 |
Kết nối hết thời gian chờ | Thử lại; kiểm tra DNS và kết nối mạng |
5.3.4 |
Tin nhắn quá lớn cho hệ thống | Giảm kích thước tin nhắn hoặc tệp đính kèm |
Những sai lầm phổ biến
-
Chỉ kiểm tra mã trả lời SMTP, bỏ qua mã tăng cường. "550" cho bạn biết nó vĩnh viễn, nhưng
5.1.1(người dùng không rõ) và5.7.1(chặn chính sách) yêu cầu các phản hồi rất khác nhau. Luôn phân tích mã tăng cường. -
Coi tất cả mã 5.X.X là "xóa khỏi danh sách". Mã
5.7.1thường có nghĩa là một chặn chính sách tạm thời (lọc thư rác, giới hạn tốc độ), không phải là địa chỉ không hợp lệ. Mù quáng xóa địa chỉ ở mọi thất bại vĩnh viễn gây ra sự suy giảm danh sách không cần thiết. -
Bỏ qua chữ số lớp. Chữ số đầu tiên là quan trọng nhất.
4.2.2(hộp thư đầy, tạm thời) và5.2.2(hộp thư đầy, vĩnh viễn) yêu cầu xử lý khác nhau. Một số nhà cung cấp sử dụng 4.X.X cho các vấn đề hạn ngạch được giải quyết và 5.X.X chỉ sau khi đầy kéo dài. - Hardcode mã cụ thể. Sổ đăng ký mã trạng thái tăng cường (RFC 5248) có thể mở rộng. Các mã mới được thêm theo thời gian. Phân tích lớp và chủ đề để quyết định định tuyến và ghi đầy đủ mã để chẩn đoán.
-
Nhầm lẫn mã trả lời SMTP với mã trạng thái tăng cường. Mã SMTP ba chữ số (550) và mã tăng cường (5.1.1) là riêng biệt. Mã tăng cường xuất hiện sau mã SMTP trong dòng phản hồi hoặc trong trường
Statuscủa DSN.
Tác động khả năng gửi
- Độ chính xác phân loại phản hồi. Mã trạng thái tăng cường là đầu vào chính cho xử lý phản hồi tự động. Phân loại chính xác các phản hồi cứng (xóa) so với phản hồi mềm (thử lại) so với chặn chính sách (điều tra) trực tiếp ảnh hưởng đến danh tiếng người gửi của bạn và chất lượng danh sách.
-
Logika thử lại nhận thức danh tiếng. Phản hồi
4.7.1(thất bại xác thực tạm thời) phải kích hoạt kiểm tra bản ghi SPF/DKIM/DMARC của bạn, không phải chỉ thử lại mù quáng.4.2.2(hộp thư đầy) là vấn đề hoàn toàn khác. -
Chẩn đoán và gỡ lỗi. Khi khả năng gửi giảm, mã trạng thái tăng cường trong nhật ký phản hồi của bạn cho bạn biết chính xác những gì đang xảy ra. Sự tăng đột biến trong phản hồi
5.7.1gợi ý vấn đề danh tiếng; sự tăng đột biến trong5.1.1gợi ý dữ liệu danh sách xấu. -
Hành vi cụ thể của nhà cung cấp. Gmail, Microsoft và Yahoo đều sử dụng mã trạng thái tăng cường, nhưng có thể gán các mã khác nhau cho cùng một điều kiện. Sử dụng các mã làm hướng dẫn và tương quan với văn bản
Diagnostic-Codeđể có bối cảnh đầy đủ.