电子邮件中的Unicode字符不会抛出异常

时间:2015-06-15 07:10:17

标签: c# .net unicode email-validation system.net.mail

我有一个带unicode字符的电子邮件地址。它不会抛出异常。 我正在使用.Net Mail Address重载构造函数。 MSDN表示,当地址包含非ASCII字符时,它将抛出FormatException。但我无法重现异常。

var addr = new System.Net.Mail.MailAddress("ñ@c.com","test", Encoding.UTF8);

如果这是公认的电子邮件地址,那么我正在搜索一个会导致单元测试异常的字符。

2 个答案:

答案 0 :(得分:2)

文档似乎已过时。自.NET 4.0以来在邮件地址中支持Unicode字符,请参阅以下博客文章: http://blogs.msdn.com/b/ncl/archive/2009/08/06/what-s-new-in-system-net-mail.aspx

答案 1 :(得分:2)

关于这个主题的源代码非常清楚 - 没有检查unicode字符。

这意味着文档已过时 - 很长一段时间以来,支持unicode域名。只有在您使用发送电子邮件 支持电子邮件地址国际化的SMTP服务器时,才会应用旧支票的剩余部分。

换句话说,不要将电子邮件地址中的unicode内容验证为错误 - 它的无效。