为了验证电子邮件地址,我们依赖于MailAddress Class。然而,根据MailAddress类,这个电子邮件a@bbb..com地址似乎是有效的。
MSDN指出以下是有效的电子邮件地址:
MailAddress类支持以下邮件地址格式:
其他资源,如http://isemail.info(http://isemail.info/a@bbb..com),指出这不是一个有效的电子邮件地址。
您认为正确的行为应该是什么?这是一个poc。
MSDN指出以下是有效的电子邮件地址:
MailAddress类支持以下邮件地址格式:
- 用户@主机的简单地址格式。如果未设置DisplayName,则生成此邮件地址格式。
- "显示名称"的标准引号显示名称格式。如果设置了DisplayName,则生成该格式。
- 如果未包括,则在“显示名称”user@host的用户名、主机名周围添加尖括号。
- 如果未包括,则在display name的DisplayName周围添加引号。
- 在DisplayName属性中支持Unicode字符。
- 带引号的用户名。例如,“用户名”@主机。
- 用户名称中的连续和尾随点。例如,user...name..@host。
- 括号域文字。例如,<[IPv6:2001:db8::1]>。
- 注释。例如,(comment)"display name"(comment)<(comment)user(comment)@(comment)domain(comment)>(comment)。传输前会删除注释。
其他资源,如http://isemail.info(http://isemail.info/a@bbb..com),指出这不是一个有效的电子邮件地址。
您认为正确的行为应该是什么?这是一个poc。
//C# Example
var emailAddress = @"a@bbb..com";
Func<string,bool> validEmail = (email)=>
{
try
{
var address = new System.Net.Mail.MailAddress(email);
return true;
}catch (Exception ex)
{
return false;
}
};
Assert.IsTrue(validEmail(emailAddress));
//using NUnit.Framework
//O2Ref:nunit.framework.dll
a@a
是有效的格式-但有强有力的证据表明,这个电子邮件不会通过验证电子邮件检查。 - dognoseInvalid: js@proseware..com
)。 - keenthinker