Verificar se email existe

20/11/2014

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

PHP

Marcio Araujo

Respostas

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 Citar

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 Citar

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 Citar

20/11/2014

Marcio Araujo

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

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 Citar

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 Citar

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 Citar

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 Citar

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 Citar

20/11/2014

Marcio Araujo

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

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 Citar

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 Citar

22/11/2014

Marcus Santos Currículo

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 Citar

22/11/2014

Marcio Araujo

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

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 Citar