【问题标题】:How to Check Email is validate or not? [duplicate]如何检查电子邮件是否有效? [复制]
【发布时间】:2013-04-18 20:28:00
【问题描述】:

如何检查电子邮件是否有效?

(例如:- abc@yahoo.com -> 好的
abc@yahoo.con ->错误)

我想检查所有世界级电子邮件地址的验证。

【问题讨论】:

  • 你的意思是检查所有域吗?
  • 值得指出的是,即将推出数百个新的顶级域。 .con 不是新的 TLD 之一,但您的代码确实需要了解新的 TLD。任何事情都可能是有效的。 from the list 的一些示例包括 .bike.baby.inc 等等。此外,.co.cm 是有效的扩展名,因此即使它们是 .com 的常见拼写错误,您也不能自动认为它们不正确。

标签: .net validation email


【解决方案1】:

您也可以使用MailAddress Class 来验证string 并创建一个扩展。

public static bool IsValidEmailAddress(this string email)
{
    try
    {
        var addr = new MailAddress(email);
        return true;
    }
    catch
    {
        return false;
    }
}

用法:

string email = "test@yahoo.com";
if (email.IsValidEmailAddress())
{
 //TODO: Is email
}

【讨论】:

    【解决方案2】:
    ^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$
    

    【讨论】:

    • 无法正常工作 ------------------
    • hay nikunj 只需添加带有 '#' 分隔符的开头
    【解决方案3】:

    要检查字符串是否是有效的电子邮件,您可以使用正则表达式,

    例如:

    bool isEmail = Regex.IsMatch(emailString, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|asia|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel)\b)\Z", RegexOptions.IgnoreCase);
    

    要验证邮箱是否存在,请阅读这篇文章。

    Verify an Email Address

    当您向某人发送电子邮件时,该邮件会发送到 SMTP 服务器 然后查找电子邮件的 MX(邮件交换)记录 收件人的域。

    例如,当您向 hello@gmail.com 发送电子邮件时,该邮件 服务器将尝试查找 gmail.com 域的 MX 记录。如果 记录存在,下一步将是确定是否存在 电子邮件用户名(在我们的示例中为你好)是否存在。

    使用类似的逻辑,我们可以验证来自 没有实际发送测试消息的计算机。

    在 .Net 中做同样的事情可能是一项乏味的任务。

    【讨论】:

    • 它工作正常...谢谢
    【解决方案4】:

    您可以尝试使用反向电子邮件查找服务,但这些服务不是很可靠,而且许多电子邮件提供商拒绝反向查找请求。所以我认为你最好的办法是首先检查电子邮件地址的格式是否正确,然后检查主机域是否存在,然后发送验证电子邮件。

    【讨论】:

      【解决方案5】:

      这是一个毫无意义的练习。进行此验证的唯一真正方法是向某人发送电子邮件并要求回复以验证该电子邮件是否正在使用中。我也不明白你的例子,abc@yahoo.com 无效但 :-abc@yahoo.com 是?什么?做一些简单的验证你的用户输入正确,就是这样。

      【讨论】:

      • abc@yahoo.com 是正确的电子邮件地址,但 abc@yahoo.con 不正确。我问你如何检查它是否有效?
      猜你喜欢
      • 1970-01-01
      • 2011-10-07
      • 2018-01-31
      • 1970-01-01
      • 2013-03-15
      • 2012-03-03
      • 2019-10-06
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多