MailAddress构造函数如何验证邮件地址
本文关键字:地址 验证 构造函数 何验证 MailAddress | 更新日期: 2023-09-27 18:03:57
在阅读通过正则表达式验证邮件地址的最佳方法时,我遇到了使用
进行验证的尝试try
{
new MailAddress(input);
}
catch (Exception ex)
{
// invalid
}
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或文档中提到的具有显示名称的地址是可以的。如果不访问代码,就不可能知道验证是如何在内部完成的,但是当然可以构造一个执行该验证的正则表达式。