3

通过这样写:

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

注意域部分中的“ø”。

我得到一个例外说明:

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

使用的地址应该是完全有效的。

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

4

3 回答 3

6

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

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

于 2010-06-09T11:11:40.013 回答
3

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

于 2010-06-09T11:09:55.403 回答
0

RFC 1034描述了域名

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

于 2010-06-09T11:33:42.867 回答