使用cfmail是否能够发送包含拉丁Unicode字符的电子邮件地址?

6
我们需要能够通过cfmail向一个包含拉丁语中带有重音符号的 a 的电子邮件地址发送电子邮件。我想我们最终还将需要允许其他Unicode字符-示例电子邮件地址是foobár@example.com。ColdFusion在此电子邮件地址上抛出错误,而该电子邮件地址在技术上是有效的。由于有重音符号的 a 是UTF-8字符,并且cfmail的默认编码为UTF-8,因此我不确定是否需要启用其他设置才能使其工作。这可能吗?
我得到的错误是标记CFMAIL的属性验证错误。
详细信息:目前为止,属性to的值为foobár@example.com,这是无效的。

@AlEverett 属性验证。刚刚更新了问题。谢谢! - RaeLehman
如果我没记错的话,Unicode字符仍然不适用于电子邮件。但是,随着RFC5322的出现,他们尝试对此进行改变。 - JonLim
@JonLim 我在网上找到了各种信息,说这是“最近被接受”的事情,所以我认为这是一个新兴的问题,我们需要找到解决方法。我正在使用jQuery Validate插件,它确实允许它们,我有点假设如果它们在那里被允许,那么它变得更加普遍。但也许不是!我可以随时更改验证,但我想看看是否有一种方法可以在CF中使其工作。 - RaeLehman
1
@JonLim 你是指 RFC 5336 SMTP 扩展支持国际化电子邮件地址 吗? - Hontvári Levente
1
+1 Hontvári的链接。这是将来可以在电子邮件地址中使用Unicode用户名的标准... 如果当时大多数已部署的MTA支持它,而电子邮件仍然广泛使用的话。目前的支持非常差。无论ColdFusion还是其他任何东西都不能可靠地向foobár@example.com发送邮件,因此使用该地址的任何人都会发现自己没有多少人可以交流! - bobince
1个回答

4
我不是I18N也不是电子邮件方面的专家,但据我了解,目前的系统通常不支持电子邮件地址中本地部分使用Unicode字符,即@之前的邮箱名称。本地邮件服务器可以支持并允许在内部使用如foobár这样的名称,但如果该用户想要从外部世界接收邮件,他们还需要一个ASCII别名,如foobar
然而,在电子邮件地址域名部分支持Unicode的机制中,涉及将其转换为称为punycode的ASCII表示形式。这意味着诸如foo@foobár.com的地址将被转换为foo@xn--foobr-0qa.com,当前的DNS和邮件系统会接受这种转换后的地址。
可以通过使用现有的Java库在ColdFusion中进行此转换。更多详细信息请参见此问题

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