当前位置: 首页 > 知识库问答 >
问题:

亚马逊SES-电子邮件地址中的非ASCII字符

席弘图
2023-03-14

我正在尝试使用AmazonSDK发送电子邮件。NET和SES。我有一封由特殊信件组成的电子邮件,例如:

ęxąmplę@źćż。通用域名格式

对于域部分,我阅读了关于Punycode的文章,这很好用。但对于地址的本地部分,我似乎找不到解决方案:我尝试对整个电子邮件使用RFC 2047编码,但SES返回“missing final@domain”错误,因此我尝试只对本地部分进行编码,因此电子邮件将是

=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=@punycodeemail.com

但这似乎也不起作用。有人成功地解决了这个问题吗?

共有1个答案

穆德海
2023-03-14

下面是我发现的:

基本SMTP电子邮件地址规范(RFC 5322第3.4节)不允许电子邮件地址超出7位ASCII范围的有限子集。为了支持问题中的电子邮件地址,发送和接收电子邮件服务器都需要支持RFC 6531中定义的名为SMTPUTF8的SMTP扩展。

根据我与亚马逊SES的支持团队SMTPUTF8的对话,目前(2017年11月23日)还没有得到广泛支持,因此他们也不支持。他们的开发团队正在开发它,但是他们不知道什么时候,或者甚至是否,它会投入生产。

以下注释当前位于中。NETSDK关于MIME编码的文档似乎有点像是在转移视线。

默认情况下,字符串必须为7位ASCII。如果文本必须包含任何其他字符,则必须使用MIME编码的单词语法(RFC 2047)而不是文字字符串。MIME编码的单词语法使用以下形式:=?charset?编码?编码文本?=。有关更多信息,请参阅RFC 2047。

因为我和亚马逊聊过这个,他们似乎正在纠正留档的一些部分,在API留档中可以找到更好的描述。

Amazon SES不支持SMTPUTF8扩展,如RFC6531中所述。因此,目标电子邮件地址的本地部分(电子邮件地址的@符号前面的部分)只能包含7位ASCII字符。如果地址的域部分(@符号后的部分)包含非ASCII字符,则必须使用Punycode进行编码,如RFC3492中所述。

 类似资料:
  • 我有一个亚马逊SES连接设置,目前处于沙盒模式。 我有我的电子邮件地址,我用的是我的真实地址,但对于这篇文章,我们称之为。它在SES中得到验证,在电子邮件标签上,它旁边写着“已验证”。 我有一个节点应用程序,可以通过nodeEmailer发送邮件 然后我把它和这个一起寄出去。运输机。sendMail,所有电子邮件地址都相同 当我尝试发送电子邮件时(发送至和发送自同一地址,并在SES上验证) 发送时

  • 我正在尝试使用Amazon SES发送电子邮件。我在地区工作过,刚刚把我的地区切换到,我无法向我的个人gmail账户发送电子邮件。我已经从地址验证了的

  • 我正在尝试使用php中的amazon SES sendmail()函数在邮件中发送pdf附件。我写了一个函数,它以MIME类型作为内容并发送邮件。但我无法在邮件中发送附件。文件路径和所有其他值看起来都很完美。 功能代码如下: 邮件已成功发送给用户,但没有附件。请帮忙。

  • 我试图使用与这里完全相同的代码:https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-using-smtp-java.html我更改了。但是我不能发送电子邮件。这两封电子邮件都已添加并验证了Amazon SES。 我正在使用邮件依赖项: 日志: 问题在哪里?

  • 我有一个Symfony2应用程序,需要使用AmazonSES发送邮件。我需要使用SMTP进行设置。由于某种原因,我的Symfony2应用程序自从我在实例上运行以来一直无法发送邮件。它在我的本地服务器上运行良好,使用gmail发送邮件,但在实时服务器上niether gmail不起作用。我的配置是: 我已经从SES控制台在线获取了SMTPHOST、SMTPUSER和SMTPPASS这三件东西。但邮件

  • 我试图通过亚马逊SES设置一个电子邮件队列,以确保我可以同时发送多封电子邮件(每秒限制为14封电子邮件)。 我总是收到错误的信号 电子邮件未发送。错误消息:在上执行“发送电子邮件”时出错https://email.us-west-2.amazonaws.com"; AWS HTTP错误:客户端错误:导致了一个响应:发件人签名o(截断…)签名desnotmatch(客户端):我们计算的请求签名与您提