Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fabiosc80

ValidateAddress

Recommended Posts

Eu nao posso deixar enviar e-mails inválidos e tb e-mails que não existam.Cara aquele manual ta confuso.Por exemplo a função eles podiam dar um exemplo pois não to entendendo lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei que o ValidateAddress serve para verificar se um e-mail existe ou é valido no ASPEMAIL.

 

Mas...

 

Como se usa isso?

O ValidateAddress do componente ASPEMAIL server somente para validar o endereço do e-mail. Isso quer dizer ele só valida se o endereço informado é um e-mail com o formato sintático correto.

 

Para verificar a existência de um endereço de e-mail o método mais utilizado hoje é o de enviar um e-mail com um link para o usuário na qual ele irá entrar no site através deste link, a partir daí você pode ter certeza de que o e-mail existe.

 

Aconselho a colocar no link que será enviado no e-mail a identificação do usuário e algum código de validação gerado aleatóriamente, antes de enviar o e-mail armazene esta informação no banco de dados para poder realizar a validação.

 

Se precisar, em meu site tem uma função que realizar o envio de e-mail utilizando vários componentes diferentes:

http://www.roccofroes.com/materia_descrica...teria_codigo=46

 

E também tem um código muito bom para validação de e-mails utilizando expressão regular.

http://www.roccofroes.com/materia_descrica...eria_codigo=132

 

Espero que lhe ajude!

 

Abraços,

Gabriel Fróes

Webmaster RoccoFroes.com

www.roccofroes.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem um jeito de pingar o e-mail antes para ver se ele responde????

 

E sobre o ValidateAddresss não existe algum exemplo na net que mostre pra ASP?

 

Não achei nenhum.

 

 

Alias to com problema no log do ASP E-mail como faço para ele exibir a mensagem de erro se o e-mail que esta sendo enviado falhar?

 

Eu fiz um jeito aqui mas ele ta trazendo o log inteiro do servidor com o erro de todos os e-mails que falaharam.

 

 

olha como fiz:

 

Set Logger = Server.CreateObject("Persits.MailLogger")	Logger.open		For each Record in Logger.Records			'If Record.Status = "RECEIVED" and Record.Recipient <> "" then	fsotxt.WriteLine("Log do servidor de E-mail:") &Record.Text&chr(13)			'End if		Next		Logger.Close

Eu teria que entregar isso hoje mas ta muito dificil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente desculpe reabrir esse tópico.Mas alguem sabe como usar o VALIDATEADDRESS"????Sei que ele só me verifica se o e-mail é correto ou não, tipo escrita, mas não sei como usar.Eu podia fazer por JS mas meu chefe quer o VALIDATEADDREESS pois ele é melhor.Alguem poderia me ajudar.vejam o que diz o manual.http://www.aspemail.com/manual_object.htmle olhem oque diz:

Function ValidateAddress(Address As String) As Integer (Version 5.0.0.4) Performs the syntactic validation of the specified email Address. Call this method on a user-specified address to make sure its syntax is valid. This method does NOT determine if an email address actually exists. Returns the following values: 0 - Valid address 1 - Too short 2 - Too long (greater than 256 chars) 3 - No @ character 4 - Nothing before @ 5 - Characters before @ must be a-z A-Z 0-9 ' _ . - 6 - No dots after @ 7 - Zero-length subdomain 8 - Characters in a subdomain must be a-z A-Z 0-9 - 9 - Characters in a top-level subdomain must be a-z A-Z 0-9 10 - Top-level subdomain must be at least 2 characters long 11 - Name part of address cannot start or end with a dot

Gente não é preguiça, é que não to entendendo ele mesmo.Ta dizendo ali pra fazer uma função pelo que li, mas como assim????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte

"Abrace" toda a parte de envio do e-mail, exceto o create.object e o Set Nothing com um IF testando +/- assim:

If SeuObjetodeEmail.ValidadeAddress(oEmailaTestar) = 0 Then
'Envie o e-mail
Else
'Utilize a lista de erros que passou e grave no seu Log ou elimine o e-mail de sua lista.
End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Salgado, não funcionava pq eu não estava jogando o obejto que setei.eu tava fazendo assim:validateaddress(TB("Email"))e o certo era assim:mail.validateaddress(TB("Email"))mas só descubro quando você colocou aqui.Valeu cara.

Compartilhar este post


Link para o post
Compartilhar em outros sites

interessante... naum conhecia essa propriedade....mas soh pra completar a dica... o CDONTS caso alguem prefira usa-lo.. somente envia os emails utilizando o smtp do receptor... segundo o q eu li... se eu estiver errado me corrigemcaso o email naum exista ou o script retorna erro...;P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal saber disso,

 

Mas cara paramos de usar o CDONTS por que peca pela segurança.

 

Alias tratei todo o "VALIDATEADDRESS" vou colocar aqui abaixo, pois, nunca vi nada dele pra ASP 3.0 na net e acho que esse é o primeiro "tratamento" dado a ele.

 

Lá vai abaixo.

 

'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	'Aqui começa o código que verifica se o e-mail é válido na escrita (VALIDATEADDRESS)   validacao = mail.validateaddress(TB("Email"))      if  validacao = 0 then   elseif validacao = 1 then   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Demasiado curto'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      elseif validacao = 2 then   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Demasiado longo (mais extremamente de 256 chars)'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      elseif validacao = 3 then   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Nenhum @ carácter'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      elseif validacao = 4 then   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Nada antes @'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      elseif validacao = 5 then   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Os carácteres antes @ devem ser o a-z A-Z 0-9 ' _. -'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      elseif validacao = 6 then   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Nenhuns pontos após @'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      elseif validacao = 7 then   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Subdomain do Zero-comprimento'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      elseif validacao = 8 then   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Os carácteres em um subdomain devem ser o a-z A-Z 0-9 -'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      elseif validacao = 9 then   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Os carácteres em um subdomain top-level devem ser o a-z A-Z 0-9'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      elseif validacao = 10 then   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'O subdomain top-level deve ser ao menos 2 caráteres por muito tempo'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      elseif validacao = 11 then   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'A parte conhecida do endereço não pode começar ou terminar com um ponto'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      end if	'Aqui termina o código que verifica se o e-mail é válido na escrita (VALIDATEADDRESS) 	'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Espero que ajude mais alguem.

 

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Só que ao invés de ELSEIF amanha eu vou fazer tudo com SELECT CASE
Era exatamente isso que is sugerir

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salgado,

 

Veja como ficou em SELECT CASE.

 

 

'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	'Aqui começa o código que verifica se o e-mail é válido na escrita (VALIDATEADDRESS)   validacao = mail.validateaddress("email_aqui")      select case validacao   case 1    response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Demasiado curto'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      case 2   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Demasiado longo (mais extremamente de 256 chars)'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      case 3   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Nenhum @ carácter'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      case 4   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Nada antes @'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      case 5   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Os carácteres antes @ devem ser o a-z A-Z 0-9 ' _. -'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      case 6   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Nenhuns pontos após @'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      case 7   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Subdomain do Zero-comprimento'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      case 8   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Os carácteres em um subdomain devem ser o a-z A-Z 0-9 -'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      case 9   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'Os carácteres em um subdomain top-level devem ser o a-z A-Z 0-9'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      case 10   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'O subdomain top-level deve ser ao menos 2 caráteres por muito tempo'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end      case 11   response.write "<center>Mensagem não vai ser enviada pelo seguinte motivo: 'A parte conhecida do endereço não pode começar ou terminar com um ponto'<br>"   response.write "<a href=java script:history.back(-1)>Voltar</a></center>"   response.end   	end select	'Aqui termina o código que verifica se o e-mail é válido na escrita (VALIDATEADDRESS) 	'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Salgado.

Se for o caso disponibiliza na parte de códigos pra galera cara, pois, esse recurso do ASPEMAIL eu nunca tinha visto na net pra ASP explicando nem em exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.