0

メールアドレスが存在するかどうかを確認しようとしています。@gmail.comSMTPサーバーに対してアドレスを確認できgmail-smtp-in.l.google.comますが、他のドメインのSMTPサーバーを取得して確認する方法がわかりません。ドメインのSMTPサーバーを取得する方法、または電子メールアドレスが存在するかどうかを確実に確認する別の方法をアドバイスしてください。

@gmail.comこれは、アドレスをチェックするための私のコードです。

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 HELO to SMTP Server and get Response */
dataBuffer = BytesFromString("HELO AnkurHere" + CRLF);
netStream.Write(dataBuffer, 0, dataBuffer.Length);
ResponseString = reader.ReadLine();

dataBuffer = BytesFromString("MAIL FROM:<abc@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)
   {
       label1.Text = "Mai Address Does not Exist !";
       label2.Text = "Original Error from Smtp Server" + ResponseString;
   }

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

1 に答える 1

0

あなたが行っているアプローチでは、ドメインの MX レコードの DNS ルックアップを行う必要があります。私の知る限り、.NET にはこれを行う組み込みの方法がないため、コンポーネントを見つけるか、この質問を確認する必要があります。

ただし、この方法では 100% 正確な結果が得られず、誤検知が発生する可能性があることに注意してください。ドメインによっては、任意のアドレスのメッセージを受け入れてから、「キャッチオール」メールボックスに入れるか、黙って削除するか、バウンスを送信します。メッセージ。受け入れてバウンスすることはベスト プラクティスではありませんが、それでも時々発生します。

于 2012-09-17T08:28:38.937 に答える