2017-09-06 33 views
12

Tôi đang cố gắng gửi e-mail bằng cách sử dụng SDK của Amazon cho .NET và SES. Tôi có một e-mail trong đó bao gồm các chữ cái đặc biệt, ví dụ:Amazon SES - Ký tự không phải ASCII trong địa chỉ e-mail

ęxąmplę@źćż.com

Đối với phần tên miền, tôi đọc về Puny và hoạt động tốt. Nhưng đối với địa phương của địa chỉ, tôi dường như không tìm được giải pháp: Tôi đã thử sử dụng mã hóa RFC 2047 cho toàn bộ e-mail, nhưng sau đó SES trả về lỗi 'thiếu cuối cùng @ tên miền', vì vậy tôi đã cố gắng mã hóa chỉ một địa phương một phần, do đó, e-mail sẽ là

[email protected]com 

nhưng điều đó dường như không hoạt động. Có ai đó đã giải quyết thành công điều đó không?

+0

'unicode (người gửi, 'latin-1'). Mã hóa ('utf-8')' – SriniV

Trả lời

2

Vì vậy, đây là những gì tôi đã phát hiện ra:

Các cơ sở SMTP địa chỉ email đặc điểm kỹ thuật (RFC 5322 Section 3.4) không cho phép địa chỉ email bên ngoài một tập hợp con hạn chế về phạm vi 7-bit ASCII. Để hỗ trợ các địa chỉ email giống như địa chỉ trong câu hỏi, cả máy chủ gửi và nhận email cần hỗ trợ phần mở rộng cho SMTP được gọi là SMTPUTF8 được xác định trong RFC 6531.

Theo cuộc trò chuyện tôi đã có với nhóm hỗ trợ của Amazon SES SMTPUTF8 hiện không được hỗ trợ rộng rãi (23/11/2017) và do đó họ không hỗ trợ. Nhóm phát triển của họ đang làm việc trên nó, tuy nhiên họ không có ý tưởng khi nào hoặc thậm chí nếu nó sẽ làm cho nó vào sản xuất.

Nhận xét sau đây hiện đang ở trong the .Net SDK documentation về Mã hóa MIME có vẻ là một phần của red herring.

Theo mặc định, chuỗi phải là ASCII 7 bit. Nếu văn bản phải chứa bất kỳ ký tự nào khác, thì bạn phải sử dụng cú pháp từ được mã hóa MIME (RFC 2047) thay vì một chuỗi chữ. Cú pháp từ được mã hóa MIME sử dụng mẫu sau: sau: =? Charset? Encoding? Encoded-text? =. Để biết thêm thông tin , hãy xem RFC 2047.

Vì tôi đã trò chuyện với Amazon về điều này, chúng dường như đang sửa một số phần của tài liệu, bạn có thể tìm thấy mô tả tốt hơn trong API documentation.

Amazon SES không hỗ trợ phần mở rộng SMTPUTF8, như được mô tả trong RFC6531. Vì lý do này, phần địa phương của địa chỉ email đích (một phần của địa chỉ email đứng trước ký hiệu @) có thể chỉ chứa các ký tự ASCII 7 bit. Nếu phần tên miền của địa chỉ (phần sau ký hiệu @) chứa ký tự không phải ASCII, chúng phải được mã hóa bằng cách sử dụng Punycode, như được mô tả trong RFC3492.

+0

cảm ơn bạn đã trả lời. Thật đáng tiếc là nó chưa được hỗ trợ rộng rãi. – Konek

Các vấn đề liên quan