C# 如何验证是否确实存在来自DNS的电子邮件

C# 如何验证是否确实存在来自DNS的电子邮件,c#,asp.net,dns,smtp,email-validation,C#,Asp.net,Dns,Smtp,Email Validation,我正在创建一个web服务来验证用户输入的电子邮件是否存在。这是web方法。问题是当电子邮件错误或正确时,该方法总是返回true [WebMethod(Description = "This method is used to validate email")] public bool ValidateEmail(string email) { bool isValid = false; try { string[] host = (email.Split

我正在创建一个web服务来验证用户输入的电子邮件是否存在。这是web方法。问题是当电子邮件错误或正确时,该方法总是返回true

[WebMethod(Description = "This method is used to validate email")]
public bool ValidateEmail(string email)
{
    bool isValid = false;

    try
    {
        string[] host = (email.Split('@'));
        string hostname = host[1];

        IPHostEntry IPhost = Dns.GetHostByName(hostname);

        IPEndPoint endPt = new IPEndPoint(IPhost.AddressList[0], 25);
        Socket soc = new Socket(endPt.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

        soc.Connect(endPt); //open connection to host
        soc.Close();
        isValid = true;

    }
    catch (Exception ex)
    {
        //ex.Message.ToString();
        isValid = false;
    }

    return isValid = true;

 }

Dns.GetHostByName()
查询与为域提供服务的SMTP服务器的地址完全无关的域的Dns A记录-该信息在MX记录中-您解析的IP对于电子邮件来说毫无价值。验证电子邮件的正确方法是向其发送带有确认链接的电子邮件。