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

本文关键字:地址 验证 构造函数 何验证 MailAddress | 更新日期: 2023-09-27 18:03:57

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

进行验证的尝试
try
{
    new MailAddress(input);
}
catch (Exception ex)
{
    // invalid
}

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

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

您可以使用新的。net参考源代码查看不使用反射器的源代码。这是到MailAddress类的链接

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

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

一个简单的地址格式user@host。如果没有设置DisplayName,这是生成的邮件地址格式。

标准的带引号的"display name"显示名格式。如果设置了DisplayName,则生成的格式为

在"User name"answers"Host name"周围添加尖括号

在DisplayName周围添加引号作为显示名称,

DisplayName支持Unicode字符。财产。

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

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

带括号的域字面值。例如:。

评论。例如,(注释)"显示名称"(评论)& lt;(评论)用户(评论)@(评论)域(评论)>(评论)。注释在传输前被删除

.

这是来自MailAddress类

至于用什么方法来验证格式,我不知道。你可以尝试Reflector看看它在内部做什么。你想知道内部细节有什么特别的原因吗?

根据文档

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

"Tom Smith <tsmith@contoso.com>"

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

因此,"裸"地址,如tsmith@contos.com或文档中提到的具有显示名称的地址是可以的。如果不访问代码,就不可能知道验证是如何在内部完成的,但是当然可以构造一个执行该验证的正则表达式。