Verificar se email existe

20/11/2014

0

PHP

Existe alguma função ou algum serviço externo que podemos utilizar no PHP para verificar se email existe ou se é valido?
Marcio Araujo

Marcio Araujo

Responder

Posts

20/11/2014

Ronaldo Lanhellas

Existe alguma função ou algum serviço externo que podemos utilizar no PHP para verificar se email existe ou se é valido?


1 - Para validar o email você pode usar expressões regulares, assim você valida a SINTAXE do que foi digitado.
if(!eregi(“^([a-z0-9_]|\\-|\\.)+@(([az0-9_]|\\-)+\\.)+[a-z]{2,4}$”,”$email”)){
die(“E-mail invalido.”);
}


2 - Mas para validar se o email já existe, há duas vertentes:
# Se você vai checar apenas na sua base de dados é muito tranquilo, apenas fazer um SELECT COUNT(*) resolve, antes de inserir o novo registro
# Porém se você quiser checar se aquele email existe em um universo de provedores (bol, uol, gmail yahoo, terra...) você terá um grande problema a enfrentar. Confesso que nunca vi um sistema que faça isso, é uma ótima ideia para uma tese de doutorado hehehe.
Responder

20/11/2014

Marcio Araujo

A minha intenção, por curiosidade mesmo, foi essa de entra no universo de provedores, até hoje não vi nada quanto a isso, nenhum web-service que ofereça essa funcionalidade, é uma ideia para quem não fez ainda.

sobre as duas opções, a primeira, de cima para baixo, já tinha vistos exemplos, mas a segunda não, que pega os dados do banco e confere.
Responder

20/11/2014

Ronaldo Lanhellas

A minha intenção, por curiosidade mesmo, foi essa de entra no universo de provedores, até hoje não vi nada quanto a isso, nenhum web-service que ofereça essa funcionalidade, é uma ideia para quem não fez ainda.

sobre as duas opções, a primeira, de cima para baixo, já tinha vistos exemplos, mas a segunda não, que pega os dados do banco e confere.


Então, a segunda que "pega" os dados do próprio banco, para checar o email, é muito mais simples e rápida de ser implementada.
Responder

20/11/2014

Marcio Araujo

Como faço, basta fazer um select no campo?
Responder

20/11/2014

Ronaldo Lanhellas

Sim, pode ser assim:

SELECT count(*) FROM esquema.usuario WHERE email = :emailParametro


Se o resultado do SELECT acima for > 0, significa que já existe o email cadastrado.
Responder

20/11/2014

Marcio Araujo

Beleza, e a outra forma hein, será que já existe solução. se achar, não esquece de divulgar, por favor.
Responder

20/11/2014

Ronaldo Lanhellas

Beleza, e a outra forma hein, será que já existe solução. se achar, não esquece de divulgar, por favor.


Bom, pensei aqui em uma solução que pode ser aplicada de forma rápida: Você pode enviar uma mensagem qualquer para o email que você quer testar se ele é válido/existe, se tiver um retorno positivo então ele existe caso contrário pode ser que não exista. Digo "pode" pois há algumas variáveis que podem influenciar no retorno, como por exemplo: o link do provedor está fora do ar ou congestionado.
Responder

20/11/2014

Marcio Araujo

Eu acho que entendi, caso não dê certo, é possivel ter uma resposta? quando enviamos um email, erramos, geralmente recebemos um email informando a falha.
Responder

20/11/2014

Ronaldo Lanhellas

Eu acho que entendi, caso não dê certo, é possivel ter uma resposta? quando enviamos um email, erramos, geralmente recebemos um email informando a falha.


Isso mesmo.
Responder

20/11/2014

Marcio Araujo

Entendi, se for desse jeito é uma outra forma de tentar.
Responder

21/11/2014

Fabio Santos

É mais viavel fazer isso atraves de uma consulta no banco, sem duvida se existir um serviço como esse devem cobrar um preço bem razoavel.
Responder

21/11/2014

Marcio Araujo

É mais viavel fazer isso atraves de uma consulta no banco, sem duvida se existir um serviço como esse devem cobrar um preço bem razoavel.


Quem fizer, pode dar uma boa grana.
Responder

22/11/2014

Marcus Santos

Bom dia Ronaldo,

Encontrei algumas soluções interessantes, ainda estou testando !!!

Por favor pode me ajudar a testar ?

https://code.google.com/p/php-smtp-email-validation/
https://github.com/hbattat/verifyEmail
http://www.phpclasses.org/package/6650-PHP-Check-if-an-e-mail-is-valid-using-SMTP.html#information
http://www.phpclasses.org/package/1519-PHP-Check-the-existence-of-an-email-address-via-SMTP.html

Abs
Responder

22/11/2014

Marcio Araujo

Marcus os links referente a validação de email fazem a verificação junto as provedoras?
Responder

22/11/2014

Ronaldo Lanhellas

Bom dia Ronaldo,

Encontrei algumas soluções interessantes, ainda estou testando !!!

Por favor pode me ajudar a testar ?

https://code.google.com/p/php-smtp-email-validation/
https://github.com/hbattat/verifyEmail
http://www.phpclasses.org/package/6650-PHP-Check-if-an-e-mail-is-valid-using-SMTP.html#information
http://www.phpclasses.org/package/1519-PHP-Check-the-existence-of-an-email-address-via-SMTP.html

Abs


Meu caro, infelizmente não vou poder ti ajudar a testar, isso é com você. O que posso fazer e lhe auxiliar caso ocorra algum erro.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar