【问题标题】:.Net MailAddress fails on "ñ" in email address.Net MailAddress 在电子邮件地址中的“ñ”上失败
【发布时间】:2011-05-26 08:43:32
【问题描述】:

以下代码抛出“在邮件标头中发现无效字符:'ñ'。”的异常:

string email = "ñ@c.com";
MailAddress to = new MailAddress(email); 

我遇到的实际地址是一个有效地址,但每当我尝试使用它时,MailAddress 类都会引发错误。

【问题讨论】:

  • 嗯...无法在 Ideone 上重现。那里没有抛出异常
  • @Cameron:它会编译,但不会运行(它会引发运行时异常)。
  • @Noon:根据 Ideone 的说法,它也运行成功
  • @Cameron:那么“Ideone”就错了。
  • @Noon:嗯,它在 Mono 2.8 下运行的——也许实现不同

标签: c# localization


【解决方案1】:

是的,很有趣。根据维基百科:Email Address,它被严格定义为 ASCII 的子集,因此在技术上是无效的。

因此,您似乎无法从 .NET 向该地址发送电子邮件(无论如何,使用 System.Net.Mail 类)。

【讨论】:

  • 是的。 RFC 5322 sections 3.2.3 and 3.2.4分别对atoms和引号字符串中允许的字符进行了标准化,两者的合法字符集都指定为US-ASCII的子集。
  • 看起来在不久的将来它会扩展到 Unicode,但现在,似乎只是 ASCII。谢谢!
  • 请注意(以防其他人偶然发现这一点),从 .NET 4.0 开始,地址中似乎允许 ñ。
猜你喜欢
  • 2012-04-17
  • 1970-01-01
  • 2014-03-28
  • 2011-09-19
  • 1970-01-01
  • 2013-04-20
  • 2011-11-02
  • 2015-12-19
  • 1970-01-01
相关资源
最近更新 更多