RFC 6531 – Tiện ích mở rộng SMTP để Email Quốc tế hóa
Tại Sao RFC Này Tồn Tại
Email được thiết kế trong thời đại ASCII. Đặc tả SMTP gốc (RFC 5321) giới hạn các địa chỉ email và lệnh envelope thành các ký tự ASCII 7-bit. Điều này hoạt động tốt cho tiếng Anh, nhưng loại trừ phần lớn các ngôn ngữ trên thế giới. Một địa chỉ email như 田太郎@例.jp đơn giản là không thể.
RFC 6531 định nghĩa phần mở rộng SMTPUTF8, cho phép mã hóa UTF-8 trong envelope SMTP — cụ thể là trong MAIL FROM, RCPT TO, và miền EHLO. Đây là một phần của bộ RFC được gọi chung là Email Address Internationalization (EAI), cũng bao gồm RFC 6532 cho các tiêu đề thư quốc tế.
Phần mở rộng này mở email cho mọi hệ thống viết được Unicode hỗ trợ, điều cần thiết cho việc chấp nhận email toàn cầu.
Cách Hoạt Động
- Máy khách gửi
EHLOvà xác nhận máy chủ quảng cáoSMTPUTF8trong danh sách khả năng của nó. - Khi gửi một thư sử dụng địa chỉ không phải ASCII (trong envelope, tiêu đề, hoặc cả hai), máy khách thêm tham số
SMTPUTF8vào lệnhMAIL FROM. - Các địa chỉ
MAIL FROMvàRCPT TOhiện có thể chứa các ký tự UTF-8. - Các tiêu đề thư cũng có thể chứa UTF-8 (theo RFC 6532), thay thế các cách dùng RFC 2047 encoded-word cũ.
- Nếu máy chủ hop tiếp theo không hỗ trợ SMTPUTF8, máy chủ gửi phải hạ cấp thư hoặc từ chối nó — nó không thể âm thầm xóa các ký tự quốc tế.
Ví Dụ SMTP
Gửi thư với địa chỉ quốc tế hóa:
Chi Tiết Kỹ Thuật Chính
Tham Số SMTPUTF8
Từ khóa SMTPUTF8 trên MAIL FROM báo hiệu rằng thư này sử dụng nội dung quốc tế hóa. Nó phải có mặt bất cứ khi nào bất kỳ điều sau đây chứa ký tự không phải ASCII:
- Địa chỉ
MAIL FROM - Bất kỳ địa chỉ
RCPT TOnào - Các tiêu đề thư (From, To, Cc, Reply-To, v.v.)
Nếu tham số SMTPUTF8 không được khai báo và envelope chứa ký tự không phải ASCII, máy chủ phải từ chối lệnh.
Tên Miền: IDN và UTF-8
Tên miền quốc tế hóa (IDN) đã tồn tại nhiều năm bằng cách sử dụng mã hóa Punycode (ví dụ: xn--e1afmapc.xn--p1ai cho пример.рф). SMTPUTF8 cho phép hình thức UTF-8 của tên miền trực tiếp trong SMTP, mặc dù Punycode (A-labels) vẫn hợp lệ. Đối với các tra cứu DNS, miền phải được chuyển đổi thành hình thức A-label của nó.
Hạ Cấp và Dự Phòng
Thách thức lớn nhất với SMTPUTF8 là khả năng tương tác với các máy chủ không hỗ trợ nó. Khi chuyển tiếp thư đến máy chủ không SMTPUTF8:
- Nếu thư có thể được hạ cấp (ví dụ: chỉ tên hiển thị chứa ký tự không phải ASCII, các địa chỉ tự nó là ASCII), máy chủ có thể thực hiện chuyển đổi hạ cấp.
- Nếu các địa chỉ envelope tự nó chứa ký tự không phải ASCII, hạ cấp là không thể — thư không thể được gửi đến máy chủ đó. Máy chủ gửi phải tạo ra một bounce.
Tương Tác với Xác Thực
Các cơ chế xác thực email cần cập nhật cho các địa chỉ quốc tế hóa:
- SPF: Sử dụng miền từ MAIL FROM. Nếu miền được quốc tế hóa, nó phải được chuyển đổi thành hình thức A-label cho tra cứu DNS.
- DKIM: Ký và xác minh tiêu đề. Với SMTPUTF8, tiêu đề có thể chứa UTF-8 thô, vì vậy việc triển khai DKIM phải xử lý điều này một cách chính xác.
- DMARC: Kiểm tra căn chỉnh miền phải tính đến cả hình thức UTF-8 và A-label của cùng một miền.
Những Sai Lầm Phổ Biến
-
Bỏ qua tham số SMTPUTF8. Nếu thư của bạn chứa bất kỳ ký tự không phải ASCII nào trong địa chỉ hoặc tiêu đề, bạn phải bao gồm
SMTPUTF8trong lệnhMAIL FROM. Quên nó sẽ khiến máy chủ từ chối các địa chỉ. - Giả định hỗ trợ SMTPUTF8 phổ biến. Việc chấp nhận đang phát triển nhưng không phổ biến. Tính đến năm 2025, các nhà cung cấp lớn như Gmail và Outlook hỗ trợ SMTPUTF8, nhưng nhiều máy chủ nhỏ hơn không. Cơ sở hạ tầng gửi của bạn phải xử lý dự phòng một cách tao nhã.
- Không chuyển đổi miền cho tra cứu DNS. Ngay cả với SMTPUTF8, các truy vấn DNS yêu cầu hình thức A-label (Punycode) của các miền quốc tế hóa. Bạn có thể sử dụng UTF-8 trong envelope SMTP, nhưng các tra cứu MX/A/AAAA phải sử dụng mã hóa tương thích ASCII.
- Lưu trữ địa chỉ quốc tế hóa mà không chuẩn hóa. Unicode có nhiều biểu diễn cho cùng một ký tự (ví dụ: hình thức kết hợp so với phân tách). Sử dụng chuẩn hóa NFC cho các địa chỉ email để đảm bảo khớp nhất quán và loại bỏ trùng lặp.
- Âm thầm xóa ký tự không phải ASCII. Nếu hệ thống của bạn không thể xử lý các địa chỉ quốc tế hóa, nó phải từ chối chúng một cách rõ ràng — không bao giờ âm thầm sửa đổi các địa chỉ bằng cách xóa ký tự. Điều đó thay đổi người nhận.
- Quên các địa chỉ bounce. Nếu địa chỉ người gửi được quốc tế hóa và thư bị bounce, bounce cũng phải được gửi qua SMTPUTF8. Nếu đường dẫn bounce không hỗ trợ SMTPUTF8, bounce sẽ bị mất.
Tác Động Khả Năng Gửi
- Tiếp cận khán giả toàn cầu. Hỗ trợ SMTPUTF8 báo hiệu rằng cơ sở hạ tầng gửi của bạn là hiện đại và bao gồm. Khi các địa chỉ quốc tế hóa trở nên phổ biến hơn, hỗ trợ chúng trở thành một kỳ vọng cơ bản.
- Độ phức tạp xử lý bounce. Các thư gửi đến các địa chỉ quốc tế hóa có thể bounce khác nhau nếu các máy chủ trung gian không hỗ trợ SMTPUTF8. Xử lý bounce của bạn phải xử lý cả địa chỉ ASCII và UTF-8.
- Căn chỉnh xác thực. SPF, DKIM, và DMARC phải hoạt động chính xác với các miền quốc tế hóa. Sự không phù hợp giữa các biểu diễn UTF-8 và A-label có thể gây ra các lỗi xác thực giả.
- Hỗ trợ nhà cung cấp lớn rất mạnh. Gmail, Microsoft 365, và các nền tảng lớn khác chấp nhận các thư SMTPUTF8. Hỗ trợ gửi từ các địa chỉ quốc tế hóa đang mở rộng nhanh chóng.
- Chuẩn bị cho tương lai. Tỷ lệ các địa chỉ email sử dụng ký tự không phải ASCII sẽ chỉ tăng. Đầu tư vào hỗ trợ SMTPUTF8 ngay bây giờ giúp tránh những khoảng trống về khả năng gửi khi việc chấp nhận toàn cầu tăng lên.