我们如何确定电子邮件地址是否真的存在?

Far*_*ebi 0 asp.net

我们可以在asp.net中使用正则表达式验证电子邮件地址.现在,我们如何才能找到真正存在的电子邮件地址?

例如,farzaneh@yahoo.com具有正确的电子邮件格式但不存在.

此代码仅适用于gmail帐户:

protected void Button1_Click(object sender, EventArgs e)
{
       TcpClient tClient = new TcpClient("gmail-smtp-in.l.google.com", 25);
       string CRLF = "\r\n";
       byte[] dataBuffer;
       string ResponseString;
       NetworkStream netStream = tClient.GetStream();
       StreamReader reader = new StreamReader(netStream);
       ResponseString = reader.ReadLine();
       /* Perform HELLO to SMTP Server and get Response */
       dataBuffer = BytesFromString("HELO " + CRLF);
       netStream.Write(dataBuffer, 0, dataBuffer.Length);
       ResponseString = reader.ReadLine();
       dataBuffer = BytesFromString("MAIL FROM:<hosseinhagh66@gmail.com>" + CRLF);
       netStream.Write(dataBuffer, 0, dataBuffer.Length);
       ResponseString = reader.ReadLine();
       /* Read Response of the RCPT TO Message to know from google if it exist or not */
       dataBuffer = BytesFromString("RCPT TO:<" + TextBox1.Text.Trim() + ">" + CRLF);
       netStream.Write(dataBuffer, 0, dataBuffer.Length);
       ResponseString = reader.ReadLine();

       if (GetResponseCode(ResponseString) == 550)
       {
           Response.Write("Mai Address Does not Exist !");
           Response.Write("<B><font color='red'>Original Error from Smtp Server :</font></b>" + ResponseString);
       }

       /* QUITE CONNECTION */
       dataBuffer = BytesFromString("QUITE" + CRLF);
       netStream.Write(dataBuffer, 0, dataBuffer.Length);
       tClient.Close();
   }

   private byte[] BytesFromString(string str)
   {
       return Encoding.ASCII.GetBytes(str);
   }

   private int GetResponseCode(string ResponseString)
   {
       return int.Parse(ResponseString.Substring(0, 3));
   }
Run Code Online (Sandbox Code Playgroud)

有什么方法可以知道吗?

谢谢.

Kal*_*lja 7

简短的回答是:如果没有正在验证地址的用户的帮助,您无法验证电子邮件地址是否存在.

实现此目的的事实上的标准是发送验证电子邮件,该电子邮件包含生成的一次性链接,供用户遵循以确认收到发送到该地址的电子邮件.