我正在创建一个Web服务来验证用户输入的电子邮件是否存在。这里是web方法。问题是这个方法总是在电子邮件错误或正确时返回true。如何验证电子邮件是否实际存在从DNS
[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()'查询DNS * A *的记录,用于没有在所有涉及到的SMTP服务器是服务领域的地址域 - 这些信息是在* MX记录* - 您解决的IP与电子邮件无关。 –
验证电子邮件的正确方法是向其发送带有确认链接的电子邮件。 –