informaster Posted March 11, 2015 at 12:47 PM Report Share #579146 Posted March 11, 2015 at 12:47 PM Bom Dia Precisava de uma maneira simples de verificar se o email exist sem mandar um email para o email. Tenho um textbox onde está gravado esse email e está bem formatado pela function de emailformatcheck() Agora precisava era saber se ele existe então continuar Senão dá mensagem que a caixa de correio nao existe. Obrigado Nuno Revez @informaster Link to comment Share on other sites More sharing options...
apocsantos Posted March 11, 2015 at 01:49 PM Report Share #579152 Posted March 11, 2015 at 01:49 PM Bom dia, Creio que no protocolo STMP esteja a resposta à pergunta, ficando a faltar a implementação. Será uma questão de ler a RFC 821 e implementar em VB a forma de o fazer. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to comment Share on other sites More sharing options...
informaster Posted March 12, 2015 at 10:50 AM Author Report Share #579200 Posted March 12, 2015 at 10:50 AM Bom Dia Já fiz esta parte de comunicar com os servidor SMTP e eles Responderem: LogList.Items.Clear() 'Nome do dominio do email que foi digitado no textEmail.Text Dim namedomain As String namedomain = txtEmail.Text.Split("@")(1) Dim cr As Cursor = Cursor.Current Cursor.Current = Cursors.WaitCursor ' Cria um servidor SMTP com a porta 25 Dim SmtpServ As New TcpClient(namedomain, 25) Dim Data As String Dim szData As Byte() Try ' Inicia o smtp Dim NetStrm As NetworkStream = SmtpServ.GetStream() Dim RdStrm As New StreamReader(SmtpServ.GetStream()) LogList.Items.Add(RdStrm.ReadLine()) ' mandas um hello ao servidor e ele responde Data = Convert.ToString("HELO " & My.Computer.Name) + vbCrLf szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()) NetStrm.Write(szData, 0, szData.Length) LogList.Items.Add(RdStrm.ReadLine()) '' envio de data Data = Convert.ToString("MAIL From:<software@cybershop.pt>") + vbCrLf szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()) NetStrm.Write(szData, 0, szData.Length) LogList.Items.Add(RdStrm.ReadLine()) '' envio e recebe data Data = Convert.ToString("RCPT To:" + "<" & txtEmail.Text & ">") + vbCrLf szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()) NetStrm.Write(szData, 0, szData.Length) LogList.Items.Add(RdStrm.ReadLine()) ' desliga-se do SMTP Data = Convert.ToString("QUIT") + vbCrLf szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()) NetStrm.Write(szData, 0, szData.Length) LogList.Items.Add(RdStrm.ReadLine()) ' fecha as conecções NetStrm.Close() RdStrm.Close() LogList.Items.Add("Close connection") ' cursor volta ao normal Cursor.Current = cr Catch err As InvalidOperationException LogList.Items.Add("Error: " + err.ToString()) End Try Agora o meu problema é outro antes disto tudo tenho que fazer um nslookup ao dominio do email para saber qual é o smtp name vou usar para fazer o codigo que escrevi anteriormente. Gostaria fazer de maneira descomplicada. Alguem conhece dentro do vb.net alguma situação para verificar os MX dos dominios. Sem ser por cmd do windows e nenhuma libraria á parte. Nuno Revez @informaster Link to comment Share on other sites More sharing options...
apocsantos Posted March 12, 2015 at 11:30 AM Report Share #579204 Posted March 12, 2015 at 11:30 AM Bom dia, É possivel de fazer, apenas com a framework .net mas terá de implementar todas as funcionalidades. Em alternativa existem algumas classes já feitas no codeproject, e um componente bastante engraçado o Chilkat que já tem todas as funcionalidades prontas a usar. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to comment Share on other sites More sharing options...
informaster Posted March 12, 2015 at 12:31 PM Author Report Share #579212 Posted March 12, 2015 at 12:31 PM Pois mas se fizer um lookup a um gmail.com como o meu firewall tem a porta 25 bloqueada o mx do gmail.com nao responde Isto é mais complexo do que eu pensava. Nuno Revez @informaster Link to comment Share on other sites More sharing options...
apocsantos Posted March 12, 2015 at 01:47 PM Report Share #579217 Posted March 12, 2015 at 01:47 PM Bom dia, Tal como referi, no codeproject existe uma aplicação com uma série de classes já feitas, bastante boa para esta finalidade. http://www.codeproject.com/Articles/5189/End-to-end-Email-Address-Verification-for-Applicat Já experimentei e a implementação parece estar realmente boa. É uma questão de testar. Em alternativa é re-implementar os mesmos mecanismos mas em vb.net. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now