电子邮件地址验证显示错误的地址为正确的
本文关键字:地址 电子邮件地址 显示 错误 验证 | 更新日期: 2023-09-27 18:05:57
我有一个关于(Visual) c#中电子邮件验证的问题。
我在网上搜索了一下,找到了几种这样做的方法。如:
- c# Email地址验证 c#代码验证电子邮件地址
奇怪的是,他们似乎都让"ex.as@asd,com"这样的邮件通过了(注意逗号而不是点)。
然而,如果我尝试通过SmtpClient
对象发送电子邮件,我得到一个异常,因为给定的电子邮件地址有错误的格式。
任何想法?
Regex从第一个链接是为我工作。你应该把所有的'替换为''和" to '"。
我试过这个代码:
var validateEmailRegex = new Regex("(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:''.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|'"(?:[''x01-''x08''x0b''x0c''x0e-''x1f''x21''x23-''x5b''x5d-''x7f]|''''[''x01-''x09''x0b''x0c''x0e-''x7f])*'")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?''.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|''[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)''.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[''x01-''x08''x0b''x0c''x0e-''x1f''x21-''x5a''x53-''x7f]|''''[''x01-''x09''x0b''x0c''x0e-''x7f])+)''])");
var isValidEmail = validateEmailRegex.Match("ex.as@asd,com").Success;
我得到了isValidEmail == false
如果您在下面尝试,它将抛出一个异常,您可以验证地址。
try
{
address = new MailAddress("ex.as@asd,com", "Email validation").Address;
}
catch(FormatException) {
//Invalid email address
}
MailAdress。