ابدأ بالتواصل مع الأشخاص وتبادل معارفك المهنية

أنشئ حسابًا أو سجّل الدخول للانضمام إلى مجتمعك المهني.

متابعة

How can I check whether the entered email address really exists or not by using asp.net c#?

user-image
تم إضافة السؤال من قبل esai mozhi
تاريخ النشر: 2016/03/09
Syed Ali
من قبل Syed Ali , SharePoint Consultant , Exceed IT Services And Training

email address as usually validated at the application's client side. hence, most of the time; they only check for the email address formats...

but to be able to really check for the existence of an email address, you may have to check at the email address' domain if they do exist...

 plus The only way to truly check to see if an email address is valid, is to send an email.

 

protected bool checkDNS(string host, string recType = "MX")

{

    bool result = false;

    try

    {

        using (Process proc = new Process())

        {

            proc.StartInfo.FileName = "nslookup";

            proc.StartInfo.Arguments = string.Format("-type={0} {1}", recType, host);

            proc.StartInfo.CreateNoWindow = true;

            proc.StartInfo.ErrorDialog = false;

            proc.StartInfo.RedirectStandardError = true;

            proc.StartInfo.RedirectStandardOutput = true;

            proc.StartInfo.UseShellExecute = false;

            proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

            proc.OutputDataReceived += (object sender, DataReceivedEventArgs e) =>

                {

                    if ((e.Data != null) && (!result))

                        result = e.Data.StartsWith(host);

                };

            proc.ErrorDataReceived += (object sender, DataReceivedEventArgs e) =>

                {

                    if (e.Data != null)

                    {

                        //read error output here, not sure what for?

                    }

                };

            proc.Start();

            proc.BeginErrorReadLine();

            proc.BeginOutputReadLine();

            proc.WaitForExit(30000); //timeout after 30 seconds.

        }

    }

    catch

    {

        result = false;

    }

    return result;

}

Syed Wahhabuddin Ahmed
من قبل Syed Wahhabuddin Ahmed , IT Project Manager , eTabeb.com - Alawadiliah Information Technology

through rcpt to command server and in C# u can create an object of TCP client and NetworkStream and StreamReader to get response it return code may be in case of not exists.

 

using System.Net.Sockets;using System.IO;using System.Text;public partial class _Default : System.Web.UI.Page {     protected void btnCheck_Click(object sender, EventArgs e)     {         TcpClient tClient = new TcpClient("gmail-smtp-in.l.google.com", );         string CRLF = "\\r\\n";         byte[] dataBuffer;         string ResponseString;        NetworkStream netStream = tClient.GetStream();         StreamReader reader = new StreamReader(netStream);        ResponseString = reader.ReadLine();        /* Perform HELO to SMTP Server and get Response */         dataBuffer = BytesFromString("HELO KirtanHere" + CRLF);         netStream.Write(dataBuffer, 0, dataBuffer.Length);         ResponseString = reader.ReadLine();        dataBuffer = BytesFromString("MAIL FROM:<>" + 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) == )         {             Response.Write("Mai Address Does not Exist !<br/><br/>");             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));     } }

المزيد من الأسئلة المماثلة