.Net mvc4 中的电子邮件验证

Email Validation in .Net mvc4

目前我正在使用以下代码进行电子邮件验证,但是 它确实验证了 dsgf@g 邮件 ID 请帮助我

[Required(ErrorMessage = "Please Enter Email Id")]
[Display(Name = "Email-Id")]
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string Cust_Email { get; set; }

EmailAddress 属性会将 dsgf@g 标记为有效,因为它是一个完全有效的电子邮件地址,因此该方法没有任何问题。例如,考虑示例 username@localhost

如果它不适合你那么你可以使用正则表达式来设置你自己的验证规则。尝试使用 'RegularExpression' 属性,例如:

[RegularExpression("^[^@\s]+@[^@\s]+(\.[^@\s]+)+$", ErrorMessage = "Invalid Email Address")]
public string Cust_Email { get; set; }

[RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", ErrorMessage = "Invalid Email Address")]
public string Cust_Email { get; set; }

电子邮件完全有效。

如果要验证,只需不要使用正则表达式进行验证即可。向他发送一个他必须输入的电子邮件地址的代码。电子邮件地址现在可以包含 ä,ö,ü,à,... 这样的字符很难匹配到正确的字符。 如果你真的想使用正则表达式验证它,你可以采用 RFC822 标准: 你会在这里找到:http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html(玩得开心 - 不想 post,它太长了)

扩展方法呢。

    public static bool IsValidEmail(this string email)
{
    bool rt = false;
    try
    {
        var mail = new System.Net.Mail.MailAddress(email);
        rt = mail.Host.Contains(".");
    }
    catch { }
    return rt;
}