2012-09-17 3 views
0

이메일 주소가 존재하는지 여부를 확인하려고합니다. SMTP 서버 gmail-smtp-in.l.google.com에 대해 @gmail.com 주소를 확인할 수는 있지만 확인하려면 다른 도메인의 SMTP 서버를받는 방법을 모르겠습니다. 도메인의 SMTP 서버를 얻는 방법이나 전자 메일 주소가 있는지 확실하게 확인하는 다른 방법을 알려주십시오. 당신은, 당신은 도메인의 MX 레코드에 대한 DNS 조회를 확인해야합니다 만들고있는 접근을 위해이메일 주소를 확인하는 방법은 무엇입니까?

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:<[email protected]>" + 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(); 
+0

Google Apps SMTP 서버는 도메인이 Google에 등록 된 국가에 따라 달라집니다. 현재 인도 SMTP 서버를 확인하고 있습니다. 모든 도메인이 Google India에 등록되어 있습니까? 또한 이메일 용 Google Apps를 사용하더라도 SMTP 로그인에 기본 Gmail 서버를 계속 사용할 수 있습니다. 사용자 계정의 전체 이메일 주소를 사용해야합니다. –

답변

0

:

@gmail.com 주소를 확인하려면 코드입니다. 지금까지 알고있는 한 .NET에서 이렇게하는 방법은 없습니다. 따라서 구성 요소를 찾거나 this question을 살펴보아야합니다.

그러나이 방법으로는 100 % 정확한 결과를 얻을 수 없으며 잘못된 반응을 보일 수 있습니다. 일부 도메인은 "모든 메일 포착"사서함에 메시지를 넣고 자동으로 삭제합니다 또는 바운스 메시지를 보내는 것. 수락하면 그때 수신 거부는 모범 사례는 아니지만 때때로 발생합니다.

관련 문제