亚马逊SES支持UTF-8电子邮件地址吗?

5

我试图查找相关细节,但未能找到任何确认信息。我正在使用AWS SDK,并尝试以下测试(下面的电子邮件是一个示例,但gmail支持在电子邮件中使用UTF-8字符):

  • 使用SES向myemail+✖@gmail.com发送电子邮件

我实际上使用AWS 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>

我有点疑惑,这个是否被支持了?如果没有,是否有计划支持它?

2个回答

7
根据Amazon SES的最新开发者指南,在限制方面,Amazon SES使用标准RFC-822电子邮件地址。
RFC-822基本上将字符集限制为7位ASCII字符串。 MIME在正文和某些特定标题字段中添加了对8位字符集的支持,但电子邮件地址和所有标题字段的完全国际化,以Unicode支持去除ASCII字符集限制和UTF-8字符集是另一个标准的一部分:RFC-6352
在Amazon SES将其接受的标题字段从RFC-822更改为允许电子邮件地址使用非ASCII字符的RFC-6532之前,您将无法在Amazon SES中使用UTF-8电子邮件地址。

很好的发现,你知道他们计划何时实施RFC-6352吗?有人真正使用它吗,还是它仍然更像是一个实验性的功能? - Nicolas Bouvrette
他们团队中有多篇帖子称已经报告了该请求以供考虑,但实际上并没有太多的信息/沟通,更多的是“阅读更新日志”的方式。我猜测,这只是个人意见,他们正在等待这个问题变得更加流行,因为在如此大规模的情况下,更改可能需要进行大量重构。我希望UTF-8在操作系统和应用程序中的普及率能够有所帮助。 - HiDeoo
我们不应该 MIME 编码电子邮件地址的本地部分吗? - Lajpat
RFC 2047规定:在“addr-spec”的任何部分中都不得出现“encoded-word”。因此,对电子邮件地址的本地部分进行mime编码是不合法的。 - vbraun

6
2023年6月15日更新: 感谢@decibyte指出,看起来SES文档不再支持在电子邮件的本地部分使用Punycode编码:

在电子邮件地址(@符号之前的部分)和“friendly from”名称中,不允许使用Punycode编码。如果您想在“friendly from”名称中使用Unicode字符,必须使用MIME编码词语法对“friendly from”名称进行编码,具体方法请参考使用Amazon SES API发送原始电子邮件。

参考链接:https://docs.aws.amazon.com/ses/latest/dg/send-email-raw.html 2022年10月6日更新: SES现在支持UTF-8字符,使用Punycode进行解释,详细说明请参见此处:

https://docs.aws.amazon.com/ses/latest/dg/send-email-raw.html

要对在消息信封中使用的电子邮件地址进行编码,请使用Punycode编码。
例如,要发送电子邮件给张伟@example.com,请对地址的本地部分(@符号之前的部分)使用Punycode编码。结果是xn--cpqy30b@example.com。
不幸的是,像Gmail这样的电子邮件提供商甚至不支持Punycode,它只会显示ASCII字符,这引出了另一个问题:为什么还要建议使用Punycode?
4月25日2016年的回答:
除了HiDeo的回答之外,我还从亚马逊得到了官方确认,目前不支持这个功能,并已转交给SES团队考虑。

https://forums.aws.amazon.com/thread.jspa?threadID=236854

亚马逊的原始回答:

你好,

感谢您提出这个功能请求!我已将其转发给SES团队进行考虑。不幸的是,您不会收到任何回复,但请密切关注https://aws.amazon.com/new上的“新动态”博客以获取任何更新!

祝好,

Matt W.


看起来他们已经改变了主意。从链接的文档中可以看到:
在电子邮件地址的本地部分(@符号之前的部分)不允许使用Punycode编码。
- decibyte

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接