Reputation: 4747
I tried to find details on this but was unable to find any confirmation. I'm using the AWS SDK and tried the following test (the email below is an example but gmail supports UTF-8 characters in emails):
I actually sent the '✖' as is using the AWS SDK and looking at the query it got encoded (URL) in the body of the POST request:
Destination.ToAddresses.member.1=myemail%2B%E2%9C%96%40gmail.com
Here is what I got from the SES response:
<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
<Error>
<Type>Sender</Type>
<Code>InvalidParameterValue</Code>
<Message>Local address contains control or whitespace</Message>
</Error>
<RequestId>f28c2325-5c09-11e6-9156-ef3e33b8e223</RequestId>
</ErrorResponse>
Did I miss something or this is not supported? and if it isn't, are there plans to support it?
Upvotes: 6
Views: 7875
Reputation: 4747
June 15th 2023 update:
Thanks to @decibyte for pointing this out but it looks like the SES documentation is no longer supporting Punycode in the local part of the email:
Punycode is not permitted in the local part of the email address (the part before the @ sign) nor in the "friendly from" name. If you want to use Unicode characters in the "friendly from" name, you must encode the "friendly from" name using MIME encoded-word syntax, as described in Sending raw email using the Amazon SES API.
Ref: https://docs.aws.amazon.com/ses/latest/dg/send-email-raw.html
October 6th 2022 update:
UTF-8 characters are now supported by SES, using Punycode as explained here:
https://docs.aws.amazon.com/ses/latest/dg/send-email-raw.html
To encode an email address that is used in the message envelope, use Punycode encoding.
For example, to send an email to 张伟@example.com, use Punycode encoding on the local part of the address (the part before the @ sign). The resulting, encoded address is [email protected].
Unfortunately, Punycode is not even supported by email providers like Gmail and it will just show the ASCII characters which lead to another question: why even suggest this?
April 25th 2016 answer:
To add to HiDeo's answer, I also got official confirmation from Amazon that this feature is not currently supported and has been forwarded to the SES team for consideration:
https://forums.aws.amazon.com/thread.jspa?threadID=236854
Original answer from Amazon:
Hello,
Thank you for this feature request! I've forwarded it to the SES team for consideration. Unfortunately you won't hear anything back from this, but please keep an eye on the What's New blog at https://aws.amazon.com/new for any updates!
Regards,
Matt W.
Upvotes: 6
Reputation: 10563
As stated in the latest Developer Guide of Amazon SES, regarding limits, Amazon SES is using standard RFC-822 email addresses.
The RFC-822 basically limits the character repertoire to 7-bit ASCII strings. MIME added supports for 8-bit character sets in the body and some specific header fields but full internationalization of email addresses and in all header fields with Unicode support, removal of the ASCII repertoire limitation and UTF-8 charset are part of another standard: RFC-6352.
Until Amazon SES change its accepted header fields from RFC-822 to RFC-6532 that allows email addresses to use non-ASCII characters, you won't be able to use UTF-8 email addresses with Amazon SES.
Upvotes: 9