2011-09-21 80 views
3

问题是这样的:我使用的第三方电子邮件传送服务不接受名称部分中包含非ASCII字符的邮件地址,例如mü[email protected]punycode编码的电子邮件地址与“真实”地址冲突吗?

编码,Punycode码这样的地址:

http://en.wikipedia.org/wiki/Punycode

http://idnaconv.phlymail.de/index.php?decoded=m%C3%BCller%40example.com&idn_version=2008&encode=Encode+%3E%3E&lang=de

得到这个地址:

[email protected]

和发送邮件它通过服务似乎工作。

但是,我不确定是否有人不能直接注册“[email protected]”,因此会收到旨在用于“mü[email protected]”的电子邮件。

这种冲突可能吗?这个问题还有其他解决方案吗?

UPDATE

感谢您的答案。下面是我们所学的内容摘要:

  • Punycoding的电子邮件地址作品的本地部分,你可以从(当然)这样的编码地址发送和接收
  • 但是,也不能保证在所有提供商或邮件客户端将理解编码,或自动执行。冲突因此是可能的,整个想法不是一个好主意:)
  • 一个人应该干脆做别人做的事,就是不允许或接受非ASCII名字部分,按照规范
  • 最后,它原来第三方服务无论如何都禁止这种恶意软件。
+0

这是不是可以用于任何* *真正punycoded?例如,如果有人真的想要这个域* xn-- stjrt-ira.xxx *,它会与该名称的punydecoded版本“冲突”。你认为的实际问题是什么? – bzlm

+0

那么,我希望注册服务机构能够意识到这一点,并且会自动合并域的编码版本和非编码版本,因此不可能使用欺骗(有意或无意)欺骗。我想知道这是否属实,以及是否也适用于电子邮件提供商。 –

+0

你如何看待这种欺骗?您的意思是您注册* xn - mller-kva @ *的情况,并且恶意接收发往*müller*的电子邮件,该电子邮件没有此地址?电子邮件客户端甚至使用punycode地址? – bzlm

回答

2

做了一些测试..在本地部分的变音器似乎在某些设置工作。我的MUA(爪子),出境中转站(exim)以及接收MTA(postfix)都没有抱怨,也没有任何punycode转换。但是像gmail和hotmail这样的提供者完全不允许这些变音符号(测试过的webmail和直接传入和传出的smtp)。我没有找到任何有关这种情况的文件,建议punycoding本地parts.so,因为它没有记录,没有人这样做没有冲突问题:-)

结论:你可能不应该接受变音在本地部分,甚至不尝试发送电子邮件到这些地址。 (如果大公司没有这样做,并且它没有被RFC记录/支持,为什么你应该这么做?)

3

可以使用如下格式将邮件标头字段的部分编码为不同的字符编码:=?UTF -8?B?w6HDq8O0?=这允许你嵌入像元音变音的东西,但我很确定它不适用于实际的地址部分。

没有理由不能使用这些字符来形成您的地址。 RFC5322定义了可能出现在3.4节地址部分中的字符,并且上面使用的所有字符都是有效的。然而,正如其他评论所说,如果你发送的邮件客户端无法解析这种格式,那么它就毫无结果。

某些SMTP服务器可能“意外地”允许变音,但因为他们支持的字符范围内不是,我不会冒这个险。

6

非ASCII字符不会在电子邮件地址的本地部分允许的。期。 Punycode仅适用于DOMAINS,不适用于电子邮件地址的本地部分。

然而,这是极有可能的是,IETF采用一种标准,使国际化本地零部件可能。但是,这个标准可能不会基于punycode。

+0

“电子邮件地址的本地部分不允许使用非ASCII字符”,因为写了这个答案,情况发生了变化,请参阅https://tools.ietf.org/html/rfc6531 –

3

我使用的表情符号的邮箱名称厌倦和正在研究今晚,显然这是现在编入扩展SMTP标准,具体SMTPUTF8按照RFC 6531.见http://en.wikipedia.org/wiki/Extended_SMTP#SMTPUTF8

我简单的试验返回以下错误,当通过Gmail发送:

信封的本地部分包含UTF8但远程服务器不提供SMTPUTF8

这是相同的,无论是否I U sed地址的emoji或punycode版本。