Jump to content

Validar se um email existe!


informaster
 Share

Recommended Posts

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

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

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

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.