我注意到,如果您尝试向无效地址发送电子邮件,则会引发异常:
MailAddress To=new MailAddress("invalidemailaddress","recipientname");
抛出:
"The specified string is not in the form required for an e-mail address"
这意味着必须有一个 .Net 函数在 MailAddress 中执行以检查电子邮件地址是否有效。有没有办法直接调用这个“验证”函数?这样我就不需要创建自己的 IsValid 函数。
最佳答案
不,但你可以做一个:
public bool ValidateEmailAddress (string email)
{
if (string.IsNullOrEmpty (email)) return false;
try
{
MailAddress to = new MailAddress (email);
return true;
}
catch (WhateverException e)
{
return false;
}
}
回复评论。我知道这种技术被认为是一种糟糕的技术,并且是有道理的。我想指出的是,这种方法将 100% 保证 .NET 邮件库最近能够发送到经过验证的地址。正则表达式(其中有很多)的问题在于,每个正则表达式都根据规范解决了一组技术上正确的地址中的一个特定子集。一个会更窄,另一个会比 .NET 内部定义的子集更宽。如果您要使用 Regex 验证,那么在第一种情况下,您的 Regex 会切断一部分有效地址(如 .NET 所见),在后一种情况下,验证将让 .NET 邮件库获得的地址通过t 根据其内部验证视为无效。确保有效集 100% 匹配 .NET 集(或您将使用的任何其他第三方库)的一种真正方法是使用 try/catch 方法,除非该第三方库当然提供了一些验证方法已经。
关于asp.net - 在 asp.net 中是否有验证电子邮件地址的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1812159/