C# 如何使用带有特殊字符的电子邮件地址,如Ø;
通过这样写:C# 如何使用带有特殊字符的电子邮件地址,如Ø;,c#,internationalization,system.net.mail,C#,Internationalization,System.net.mail,通过这样写: var recipient = new MailAddress("name@abcø.dk"); 注意域部分中的“ø” 我得到一个例外声明: System.FormatException:指定的字符串不是电子邮件地址所需的格式。 位于System.Net.Mime.MailBnfHelper.ReadMailAddress(字符串数据、Int32和偏移量、字符串和显示名称) 位于System.Net.Mail.MailAddress.ParseValue(字符串地址) 位于Sys
var recipient = new MailAddress("name@abcø.dk");
注意域部分中的“ø”
我得到一个例外声明:
System.FormatException:指定的字符串不是电子邮件地址所需的格式。
位于System.Net.Mime.MailBnfHelper.ReadMailAddress(字符串数据、Int32和偏移量、字符串和显示名称)
位于System.Net.Mail.MailAddress.ParseValue(字符串地址)
位于System.Net.Mail.MailAddress..ctor(字符串地址、字符串显示名称、编码显示名称编码)
位于System.Net.Mail.MailAddress..ctor(字符串地址)
使用的地址应该完全有效
所以我猜我必须以某种方式对地址进行编码?您可能需要使用主机名的编码变体。参见,IDNA编码示例RFC-822规定,该域的每个部分必须完全由ASCII字符构成,不包括空格和控制字符。根据此标准,您的电子邮件地址无效 对于国际化域名而言,这意味着您只能通过使用该域名的ASCII格式获得符合RFC-822的电子邮件地址。描述了域名 标签必须遵循ARPANET主机名的规则。他们必须 以字母开头,以字母或数字结尾,并具有内部 仅限字母、数字和连字符。还有一些
长度限制。标签必须是63个字符或更少。如果我理解正确,使用IDN作为域名的电子邮件需要使用punycode,才能符合rfc-822?我想这正是我所说的,是的。不要向信使开枪……;)我不会:)这实际上帮我省了很多麻烦