Array
(
)

Verificar se email existe

PHP
Marcio Araujo
   - 20 nov 2014

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

Ronaldo Lanhellas
   - 20 nov 2014


Citação:
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.
#Código

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.

Marcio Araujo
   - 20 nov 2014

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.

Ronaldo Lanhellas
   - 20 nov 2014


Citação:
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.

Marcio Araujo
   - 20 nov 2014

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

Ronaldo Lanhellas
   - 20 nov 2014

Sim, pode ser assim:

#Código

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


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

Marcio Araujo
   - 20 nov 2014

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

Ronaldo Lanhellas
   - 20 nov 2014


Citação:
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.

Marcio Araujo
   - 20 nov 2014

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.

Ronaldo Lanhellas
   - 20 nov 2014


Citação:
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.

Marcio Araujo
   - 20 nov 2014

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

Fabio Santos
   - 21 nov 2014

É 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.

Marcio Araujo
   - 21 nov 2014


Citação:
É 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.

Marcus Santos
|
MVP
    22 nov 2014

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

Marcio Araujo
   - 22 nov 2014

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

Ronaldo Lanhellas
   - 22 nov 2014


Citação:
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.

Marcio Araujo
   - 22 nov 2014

Chegou a entender sobre os links Ronaldo?

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

Ronaldo Lanhellas
   - 22 nov 2014


Citação:
Chegou a entender sobre os links Ronaldo?

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


Não, estou sem tempo para validar todos os links.

Marcio Araujo
   - 22 nov 2014

Tranquilo. :-)

Fabio Santos
   - 23 nov 2014

As melhores formas é fazer no banco e utilizando javascript, menos complicadas.

Marcio Araujo
   - 23 nov 2014

Pensando é a melhor forma realmente e "simples".