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

时间:2013-04-25 04:25:28

标签: .net validation email

  

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

(例如: - abc@yahoo.com - >确定 abc@yahoo.con - >错误)

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

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

要检查字符串是否是有效的电子邮件,您可以使用Regex,

前:

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记录。如果   记录存在,下一步将是确定是否存在   电子邮件用户名(在我们的示例中为hello)是否存在。

     

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

在.Net中做同样的事情可能是一项繁琐的工作。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

您还可以使用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
}