.Net mvc4 中的电子邮件验证

Posted

技术标签:

【中文标题】.Net mvc4 中的电子邮件验证【英文标题】:Email Validation in .Net mvc4 【发布时间】:2017-01-05 03:54:33 【问题描述】:

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

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

【问题讨论】:

dsgf@g 不能是正确的电子邮件地址,有效的电子邮件地址必须是这样的:name@domain.tld。另外,您需要将其设为电子邮件地址数据类型(用于格式化)并使用 EmailAddress 属性对其进行验证。看到这个:***.com/questions/8989081/… @Fourat dsgf@g 是一个完全有效的电子邮件地址,因此该方法没有任何问题。以username@localhost 为例 【参考方案1】:

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; 

【讨论】:

我用正则表达式验证邮件地址的最大值是检查是否有 1 个“@”字符。在他的情况下,最终检查“。” '@' 后面的字符。使用正则表达式验证电子邮件是一种不好的做法。看到我的回答与正则表达式的链接(这也是过时的。也许你明白,我的意思) @MatthiasBurger 我不认为使用正则表达式验证电子邮件是一种不好的做法。如果你不写国际服务,那么你可以很容易地用正则表达式检查邮件。它在每秒的服务和应用程序中使用。 RFC822 非常害怕,请看这里:blog.onyxbits.de/… EmailValidator-class 也让我害怕。 :D 但是您真的会花时间获得正确的正则表达式,而不是切换到更简单的解决方案并向他发送一封包含代码或链接的电子邮件,以确保他的邮件地址有效吗? (请记住,电子邮件地址的可能性改变了几次。您也必须更改您的正则表达式,以支持新标准 - 每次)。另外,通过发送邮件,您可以查看地址是否存在。 @MatthiasBurger 我没有说你的解决方案不好。这是一个很好的方法。我刚刚说过正则表达式是更简单的方法:) 问题是关于使用属性进行验证【参考方案2】:

电子邮件完全有效。

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

【讨论】:

【参考方案3】:

扩展方法呢。

    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;

【讨论】:

以上是关于.Net mvc4 中的电子邮件验证的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET WEB API 中的电子邮件验证 URL

MVC4 oauth facebook 访问用户和朋友权限:

如何远程验证电子邮件或检查电子邮件是不是存在

ASP.NET 电子邮件验证器正则表达式

MVC4 Postal - 通过 UserId 访问用户电子邮件地址搜索

注册新帐户时如何要求 asp.net forms 身份验证发送验证电子邮件?