如何使用特殊字符(如Ø)的电子邮件地址

Sir*_*Lot 3 c# internationalization system.net.mail

写这个:

var recipient = new MailAddress("name@abcø.dk");
Run Code Online (Sandbox Code Playgroud)

注意域部分中的"ø".

我得到一个例外说明:

System.FormatException:指定的字符串不是一个电子邮件地址所要求的形式.在System.Net.Mime.MailBnfHelper.ReadMailAddress(字符串数据,的Int32&偏移,字符串&显示名)在System.Net.Mail.MailAddress.ParseValue(字符串地址)在System.Net.Mail.MailAddress..ctor(字符串地址,字符串System.Net.Mail.MailAddress..ctor(String address)中的displayName,Encoding displayNameEncoding)

使用的地址应该完全有效.

所以我猜我必须以某种方式对地址进行编码?

Dav*_*d M 6

RFC-822规定该域的每个部分必须完全由ASCII字符组成,不包括空格和控制字符.根据此标准,您的电子邮件地址无效.

这对国际化域名的意义在于,您只能使用该域名的ASCII格式获得符合RFC-822的电子邮件地址.