Amazon SES 是否支持 UTF-8 电子邮件地址?
Does Amazon SES support UTF-8 email addresses?
我试图找到这方面的详细信息,但无法找到任何确认。我正在使用 PHP SDK 并尝试了以下测试(下面的电子邮件是一个示例,但 gmail 支持电子邮件中的 UTF-8 字符):
- 发送带有 SES 的电子邮件至 myemail+✖@gmail.com
我实际上使用 PHP SDK 发送了“✖”,并查看了它在 POST 请求正文中编码 (URL) 的查询:
Destination.ToAddresses.member.1=myemail%2B%E2%9C%96%40gmail.com
这是我从 SES 回复中得到的内容:
<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>
我是不是漏掉了什么或者这个不被支持?如果不是,是否有支持它的计划?
如最新 Developer Guide of Amazon SES, regarding limits, Amazon SES is using standard RFC-822 个电子邮件地址所述。
RFC-822 基本上将字符集限制为 7 位 ASCII 字符串。 MIME 在 body 和一些特定的 header 字段中添加了对 8 位字符集的支持,但电子邮件地址和所有具有 Unicode 支持的 header 字段完全国际化,删除了 ASCII 曲目限制和 UTF-8 字符集是另一个标准的一部分:RFC-6352.
除非 Amazon SES 将其接受的 header 字段从 RFC-822 更改为允许电子邮件地址使用 non-ASCII 字符的 RFC-6532,否则您将无法使用 UTF-8 电子邮件使用 Amazon SES 的地址。
2022 年 4 月 26 日更新:
SES 现在支持 UTF-8 字符,使用 Punycode,如下所述:
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 xn--cpqy30b@example.com.
2016 年 4 月 25 日回答:
补充一下 HiDeo 的回答,我还得到了亚马逊的官方确认,目前不支持此功能,已转发给 SES 团队考虑:
https://forums.aws.amazon.com/thread.jspa?threadID=236854
来自亚马逊的原始回答:
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.
我试图找到这方面的详细信息,但无法找到任何确认。我正在使用 PHP SDK 并尝试了以下测试(下面的电子邮件是一个示例,但 gmail 支持电子邮件中的 UTF-8 字符):
- 发送带有 SES 的电子邮件至 myemail+✖@gmail.com
我实际上使用 PHP SDK 发送了“✖”,并查看了它在 POST 请求正文中编码 (URL) 的查询:
Destination.ToAddresses.member.1=myemail%2B%E2%9C%96%40gmail.com
这是我从 SES 回复中得到的内容:
<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>
我是不是漏掉了什么或者这个不被支持?如果不是,是否有支持它的计划?
如最新 Developer Guide of Amazon SES, regarding limits, Amazon SES is using standard RFC-822 个电子邮件地址所述。
RFC-822 基本上将字符集限制为 7 位 ASCII 字符串。 MIME 在 body 和一些特定的 header 字段中添加了对 8 位字符集的支持,但电子邮件地址和所有具有 Unicode 支持的 header 字段完全国际化,删除了 ASCII 曲目限制和 UTF-8 字符集是另一个标准的一部分:RFC-6352.
除非 Amazon SES 将其接受的 header 字段从 RFC-822 更改为允许电子邮件地址使用 non-ASCII 字符的 RFC-6532,否则您将无法使用 UTF-8 电子邮件使用 Amazon SES 的地址。
2022 年 4 月 26 日更新:
SES 现在支持 UTF-8 字符,使用 Punycode,如下所述:
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 xn--cpqy30b@example.com.
2016 年 4 月 25 日回答:
补充一下 HiDeo 的回答,我还得到了亚马逊的官方确认,目前不支持此功能,已转发给 SES 团队考虑:
https://forums.aws.amazon.com/thread.jspa?threadID=236854
来自亚马逊的原始回答:
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.