我们需要能够将包含cfmail的电子邮件发送到包含具有急性的拉丁语a
的电子邮件地址。我假设我们最终还必须允许其他Unicode字符 - 示例电子邮件地址为foobár@example.com
。 ColdFusion在此电子邮件地址上引发错误,这在技术上是有效的。由于急性a
是UTF-8字符,并且cfmail的默认编码是UTF-8,我不确定我需要启用哪些其他设置才能使其工作。这可能吗?
我得到的错误是标签CFMAIL的属性验证错误。
详细信息:属性的值(目前为foobár@example.com)无效。
答案 0 :(得分:4)
我既不是I18N也不是电子邮件专家,但我对FWIW的理解是,当前系统通常不支持电子邮件地址的本地部分中的unicode,即@之前的邮箱名称。本地邮件服务器可以支持它并在内部允许使用诸如foobár之类的名称,但如果该人想要从外部世界接收邮件,则还需要ASCII别名,例如 foobar
但是,有一种机制可以在地址的域部分支持unicode,这涉及转换为名为 punycode 的ASCII表示。这意味着foo@foobár.com等地址将转换为当前DNS和邮件系统将接受的 foo@xn--foobr-0qa.com 。
可以使用现有的Java库在ColdFusion中进行此转换。有关详细信息,请参阅this question。