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

时间:2010-06-09 11:07:36

标签: c# internationalization system.net.mail

写下这个:

var recipient = new MailAddress("name@abcø.dk");

注意域部分中的“ø”。

我得到一个例外陈述:

  

System.FormatException:指定的字符串不是电子邮件地址所需的格式。      at System.Net.Mime.MailBnfHelper.ReadMailAddress(String data,Int32& offset,String& displayName)      在System.Net.Mail.MailAddress.ParseValue(String address)      at System.Net.Mail.MailAddress..ctor(String address,String displayName,Encoding displayNameEncoding)      在System.Net.Mail.MailAddress..ctor(String address)

使用的地址应完全有效。

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

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:3)

您可能需要使用主机名的编码变体。请参阅here,IDNA编码示例

答案 2 :(得分:0)

RFC 1034描述了域名

标签必须遵循ARPANET主机名的规则。他们一定 以字母开头,以字母或数字结尾,并作为内部 字符只有字母,数字和连字符。还有一些 限制长度。标签不得超过63个字符。