asp.net - 在 asp.net 中是否有验证电子邮件地址的功能?

标签 asp.net email

我注意到,如果您尝试向无效地址发送电子邮件,则会引发异常:

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/

相关文章:

c# - 如何在 Kentico CMS 中创建 "back"链接?

c# - 在 Application_AquireRequestState 事件中用 POST 数据重写 Url

wordpress - 如何在 Wordpress 电子邮件的回复标题中更改电子邮件地址

安卓 : how to open a mail composer view?

c# - 在运行时将 2 个类合并为一个类

python - 如何使用python向服务器提交表单并通过互联网从服务器获取csv文件?

wordpress - 将 WordPress 用户名设为电子邮件地址

android - Android 中的消息和电子邮件 Intent ?

asp.net - 用户控件未获得声明性属性值

c# - MemoryStream 不填充附件