Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MailAddress构造函数如何验证邮件地址_C# - Fatal编程技术网

C# MailAddress构造函数如何验证邮件地址

C# MailAddress构造函数如何验证邮件地址,c#,C#,在阅读有关通过正则表达式验证邮件地址的最佳方法时,我遇到了一个使用 try { new MailAddress(input); } catch (Exception ex) { // invalid } maildaddress类使用什么方法来确保邮件地址有效?如果您指的是验证它是否是有效的电子邮件地址格式,它支持几种标准格式: MailAddress类支持以下邮件地址格式: 一种简单的地址格式user@host. 如果未设置DisplayName, 这是生成的邮件地址格式 “

在阅读有关通过正则表达式验证邮件地址的最佳方法时,我遇到了一个使用

try
{
    new MailAddress(input);
}
catch (Exception ex)
{
    // invalid
}

maildaddress
类使用什么方法来确保邮件地址有效?

如果您指的是验证它是否是有效的电子邮件地址格式,它支持几种标准格式:

MailAddress类支持以下邮件地址格式:

一种简单的地址格式user@host. 如果未设置DisplayName, 这是生成的邮件地址格式

“显示名称”的标准引用显示名称格式。 如果设置了DisplayName,则这是生成的格式

在“显示”的用户名、主机名周围添加了尖括号 “姓名”user@host如果这些不包括在内

在DisplayName的DisplayName周围添加引号, 如果这些不包括在内

DisplayName中支持Unicode字符。财产

带引号的用户名。例如,“用户名”@host

用户名中的连续点和尾随点。例如 user…name..@host

括号内的域文字。例如

评论。例如,“注释”显示 名称“(注释)(注释)。 在传输之前删除注释

这是从

至于它使用什么方法来验证格式,我不知道。您可以随时尝试查看Reflector的内部功能。您想知道内部细节有什么特别的原因吗?

根据

address参数可以包含显示名称和关联的 电子邮件地址(如果将地址括在尖括号中)。对于 例如:

“汤姆·史密斯”

显示名称和角度之间允许空白 括号


所以一个“裸体”地址,比如tsmith@contos.com或者使用文档中提到的显示名称也可以。在没有访问代码的情况下,不可能知道验证是如何在内部完成的,但是当然可以构造一个进行验证的正则表达式。

您可以在不使用新的Reflector的情况下查看源代码。这是该课程的链接。

如果你可以访问Reflector或其他“反编译器”,你可以看看。纯粹是好奇。我想知道它是如何确定您是否提供了有效的邮件地址的。与其说它需要什么参数,不如说它如何验证邮件地址本身。然后Reflector或其他反编译器(如ILDASM,如果您没有其他可用的话)会让您了解内部代码在做什么以及它是如何做的。