Filtro para saber se o e-mail é válido

706 views
Skip to first unread message

Claudino Sales

unread,
Sep 13, 2012, 8:21:55 AM9/13/12
to tu...@googlegroups.com
Olá Pessoal,

Estou desenvolvendo um sistema para web e gostaria de saber como faço para colocar um filtro no campo para informar o e-mail para eu poder saber se o e-mail é válido, pois não quero ter a preocupação de ter que alterar os e-mails sempre que forem postos de forma irregular, como por ex.: (@hotimail.com; gemail.com; etc).

Atte,
   
--
Claudino Sales - Procon Fortaleza
Rua Major Facundo, 869 - Centro
(85)3105-1184 / (85)8862-1533
Técnico de Informática
JESUS TE AMA E EU TAMBÉM!

Danilo Josino

unread,
Sep 13, 2012, 8:28:17 AM9/13/12
to tu...@googlegroups.com


Se a questão for validar o formato, basta usar "type=email" no input, é um recurso do html5 creio que deva satisfazer esse problema.

Ronaldo Davi

unread,
Sep 13, 2012, 8:31:50 AM9/13/12
to tu...@googlegroups.com
o html5 ta trazendo otimos recursos heim =)

--
Comunidade Tux-CE - Comunidade Cearense de Software Livre
Para postar neste grupo, envie um e-mail para tu...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para tuxce-un...@googlegroups.com
Maiores informações: http://groups.google.com/group/tuxce ou http://www.tux-ce.org



--
Atenciosamente,
Ronaldo davi

CTO - chief technical officer - ProtectIT,
Tecnologias Corporativas & software livre,
Consultor Dell Experts 
Fortaleza-CE
Fone: 85 8898.5206(oi) / 9622.6782(Tim) / 8165.4330(Vivo)


ATENÇÃO !!! 

Se houver documentos de escritório incluídos neste e-mail,
eles poderão estar no formato ODF, um padrão aberto, 
gratuito e homologado pela ISO e ABNT.
Para visualizar ou editar, basta copiar e instalar o LibreOffice em
http://www.documentfoundation.org/

Ronaldo Davi

unread,
Sep 13, 2012, 8:34:03 AM9/13/12
to tu...@googlegroups.com
a melhor forma e usar validação


--
Comunidade Tux-CE - Comunidade Cearense de Software Livre
Para postar neste grupo, envie um e-mail para tu...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para tuxce-un...@googlegroups.com
Maiores informações: http://groups.google.com/group/tuxce ou http://www.tux-ce.org

Humberto Fraga

unread,
Sep 13, 2012, 8:57:58 AM9/13/12
to tu...@googlegroups.com
Galera, acho que as respostas de vocês não respondem o que o Claudino perguntou

Em 13 de setembro de 2012 09:21, Claudino Sales <claudino...@gmail.com> escreveu:
Estou desenvolvendo um sistema para web e gostaria de saber como faço para colocar um filtro no campo para informar o e-mail para eu poder saber se o e-mail é válido, pois não quero ter a preocupação de ter que alterar os e-mails sempre que forem postos de forma irregular, como por ex.: (@hotimail.com; gemail.com; etc).

Ele não está perguntando se o e-mail digitado é um endereço de email válido (correto), mas sim se é um endereço existente. Vejam os exemplos que ele forneceu.

Claudino, dificilmente você conseguirá fazer isso apenas com javascript ou php (até porque nada impede que uma empresa crie um serviço chamado hotimail e que ele funcione por uns meses até a Microsoft o processar), talvez a solução seja enviar um email para o usuário para confirmar o cadastro.

Inclusive, recentemente li um artigo sobre isso: evitar fazer validação de emails e usar esse método para confirmar o cadastro: http://davidcelis.com/blog/2012/09/06/stop-validating-email-addresses-with-regex/

--
Humberto Fraga
http://lixaonerd.wordpress.com

"Sur la tuta tero estis unu lingvo kaj unu parlomaniero." - Gn 11,1

Danilo Josino

unread,
Sep 13, 2012, 9:04:00 AM9/13/12
to tu...@googlegroups.com
Faltou ele esclarecer, pode ser que ele só queria saber se o formato é valido.

O html5 já faz essa validação por expressão regular e na resposta do Ronaldo tem exemplo de confirmação por email em php.

Caso ele esteja utilizando rails eu recomendaria a gem devise, que faz tudo em 5min.
http://railscasts.com/episodes/209-introducing-devise

Claudino Sales

unread,
Sep 13, 2012, 9:42:13 AM9/13/12
to tu...@googlegroups.com
Bem pessoal, as informações que vocês me passaram foram interessantes, mas o que eu desejo resumindo tudo, é apenas um código ou um filtro em que eu possa saber se aquele e-mail existe ou não. Pois a maneira que estou fazendo hoje é da seguinte forma, os usuários realizam seu cadastro, após a realização do cadastro eles recebem no e-mail cadastrado um senha provisório e logo após feito o logon a senha provisória pode ser alterada. Devido ao fato de que alguns usuários estavam cadastrando e-mails com erros de digitação faltando algum caractere, eles simplesmente não chegavam a receber a senha e entravam em contato comigo para que eu podesse realizar a alteração da senha. O que eu desejo é colocar um filtro no campo do e-mail para que o meu banco reconheça aquele e-mail como um e-mail correto ou existente, para não haver o risco do usuário não chegar a receber o e-mail, o usuário poderia ser informado no mesmo campo (e-mail incorreto, e-mail correto).

Atte,

--
Comunidade Tux-CE - Comunidade Cearense de Software Livre
Para postar neste grupo, envie um e-mail para tu...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para tuxce-un...@googlegroups.com
Maiores informações: http://groups.google.com/group/tuxce ou http://www.tux-ce.org

Claudino Sales

unread,
Sep 13, 2012, 9:44:21 AM9/13/12
to tu...@googlegroups.com
Outro detalhe, o fato de colocar para o campo informar se o e-mail é correto ou incorreto, fazer com que caso seja incorreto não consiga realizar o cadastro.

Danilo Josino

unread,
Sep 13, 2012, 9:57:21 AM9/13/12
to tu...@googlegroups.com


Por expressão regular já tem bastante material, quanto a checagem acho que não seja possível, mas posso ta errado..
O mais correto vc já faz que é confirmação por email


Em quinta-feira, 13 de setembro de 2012 09h21min56s UTC-3, Claudino Sales escreveu:

Claudino Sales

unread,
Sep 13, 2012, 10:00:25 AM9/13/12
to tu...@googlegroups.com
Quem gosta da confirmação do e-mail? Eu até entendo que é uma maneira mais segura, mas eu particulamente não gosto tanto, acho que seria até mais eficiente dessa forma que frizei, acho que seria ganho de tempo e também deixaria meu e-mail mais enxuto, pois imagina me cadastrar em uns 10 sites, seriam 10 e-mail de confirmação. Nossa tecnologia é excelente, só a gente que quebra cabeça para entender algumas coisas. Mas valeu a todos pelos comentários.

--
Comunidade Tux-CE - Comunidade Cearense de Software Livre
Para postar neste grupo, envie um e-mail para tu...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para tuxce-un...@googlegroups.com
Maiores informações: http://groups.google.com/group/tuxce ou http://www.tux-ce.org

Humberto Fraga

unread,
Sep 13, 2012, 10:04:35 AM9/13/12
to tu...@googlegroups.com
Em 13 de setembro de 2012 10:57, Danilo Josino <dan...@josino.com.br> escreveu:
Por expressão regular já tem bastante material, quanto a checagem acho que não seja possível, mas posso ta errado..
O mais correto vc já faz que é confirmação por email

Exatamente.

A única forma que eu conheço de checar se um endereço de email existe é enviar um email para o endereço.

Você até poderia criar dicionários com erros comuns de digitação, mas seria um trabalho grande a pouco retorno. E ainda assim poderiam aparecer erros novos, ou até mesmo falsos positivos (no caso de uma nova empresa criar o email @gemail, como fica?). E ainda assim o dicionário não cobriria o caso de a pessoa cometer o erro de digitação antes do @.

Sobre não gostar de emails de confirmação: eu os recebo, clico no link e depois mando pra lixeira (exceto quando ele tem alguma informação útil, o que raramente é o caso). Até prefiro assim, porque dessa forma eu sei que só eu me cadastro nos sites. Quando um site aceita cadastros sem enviar emails de confirmação, eu poderia usar o email de outra pessoa (ou até um inexistente) para me cadastrar.

Marcelo Cavalcante

unread,
Sep 13, 2012, 10:06:25 AM9/13/12
to tu...@googlegroups.com
Concordo com o Humberto e os demais.

É IMPOSSÍVEL fazer um verificador de emails eficiente.

Veja bem, se você utilizar regex, você estará apenas checando se o cara digitou hotimail ao invés de hotmail, e assim por diante.

E se na verdade o email do cara é mar...@hotmail.com, mas ele digitou mar...@hotmail.com? A sua regex não funcionará.

De fato é impossível fazer um verificador de emails sem ser por email de confirmação. É a melhor e mai spolida forma de o fazer. ;]

===================================================

Marcelo Cavalcante Rocha - Kalib

Graduando em Sistemas de Informações - ESTÁCIO/FIC
Usuário Linux #407564 | Usuário Asterisk #1148
Fortaleza - Ceará - Brazil
Celular: +55 085 87620983
Certificações: ITIL V3 | CSM
LPI-C1 | LPI-C2 | LPI-C3 | Novell CLA
Minha Pessoa: Blog
Projetos: Tux-CE | Archlinux-br 
Chakra | KDE Brasil | TLUG | PUG-CE

===================================================
 

Proteja meu endereço como estou protegendo o seu.
Não revele e-mail dos correspondentes: use Cco (Copia Carbonada Oculta).
Retire os endereços antes de reenviar. Dificulte assim a
disseminação de vírus e spam.




2012/9/13 Humberto Fraga <xisb...@gmail.com>
--

SÁ, Samy

unread,
Sep 13, 2012, 10:06:55 AM9/13/12
to tu...@googlegroups.com
Não há forma de um código detectar se um endereço de email existe sem enviar algo pro tal email... Pra evitar digitação errônea dos endereços, a saída mais utilizada é colocar dois campos de entrada. O primeiro é do tipo email (type=email), e o segundo pode ser é de formato livre, pois você não quer que o browser preencha automaticamente. A intenção é que a pessoa precise digitar o endereço duas vezes para que você possa comparar as duas entradas e detectar um erro de digitação, afinal, é muito difícil errar duas vezes os mesmo detalhes na digitação.

Outra coisa que você pode fazer, é incluir uma explicação breve, bem curta, no começo do formulário. Nesse pequeno texto, você diz que o cadastro da pessoa será validado por email, e que é importante verificar sua digitação.
--
Samy Sá
-------------------------------------------------------------------------------
Doutorando em Ciência da Computação (MDCC/UFC),
Professor Assistente, Tutor PET - TI Quixadá (TIQx)
Universidade Federal do Ceará, Campus de Quixadá.

-------------------------------------------------------------------------------
Homepage | Blog | Twitter

Danilo Josino

unread,
Sep 13, 2012, 10:07:38 AM9/13/12
to tu...@googlegroups.com



Realmente ninguém gosta, mas por exemplo eu crio o domino @tux-ce.org, eu só saberia se existe um determinado usuário pra esse domínio, caso eu mandasse um email e me retornasse alguma mensagem de erro, ooooou se já fosse de meu conhecimento que determinados emails existem.

Pra vc fazer uma rotina que envie emails, aguarde a resposta e confirme ao usuário, o cadastro leva bem mais tempo, outra coisa também é a certeza de que aquele email é da pessoa que está tentando se cadastrar, pois um usuário mal intencionado pode criar um cadastro com email dire...@procon.ce.gov.br.

Porém estou só colocando possíveis situações, claro.





Em quinta-feira, 13 de setembro de 2012 09h21min56s UTC-3, Claudino Sales escreveu:

Claudino Sales

unread,
Sep 13, 2012, 10:24:04 AM9/13/12
to tu...@googlegroups.com
A ideia de enviar um e-mail para confirmação é ótimo, mas para onde irá o e-mail de confirmação enviado para um e-mail inexistente? A ideia do Samy ao meu ver é uma das melhores pois fará com que o usuário tenha uma atenção dobrada sobre o e-mail que ele irá informar, fará com que ele veja duas fezes, mas está opção não é 100%, o debate está bom, e sei que temos capacidade para encontrar uma solução 100% correta e sem falhas.

--
Comunidade Tux-CE - Comunidade Cearense de Software Livre
Para postar neste grupo, envie um e-mail para tu...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para tuxce-un...@googlegroups.com
Maiores informações: http://groups.google.com/group/tuxce ou http://www.tux-ce.org

Marcelo Cavalcante

unread,
Sep 13, 2012, 10:26:26 AM9/13/12
to tu...@googlegroups.com
Não existirão opções 100% corretas.

Sobre a sugestão do Samy, é de fato o que a maioria dos sites utilizam hoje em dia, assim como com campos de senhas.

Ainda assim, o usuário pode cometer duas vezes o mesmo erro (não subestime a capacidade dos usuários quanto a cometer erros).

No mais, ainda que você esteja solicitando duas vezes o campo de email, continua send sugerido que se utilize email de confrmação.

===================================================

Marcelo Cavalcante Rocha - Kalib

Graduando em Sistemas de Informações - ESTÁCIO/FIC
Usuário Linux #407564 | Usuário Asterisk #1148
Fortaleza - Ceará - Brazil
Celular: +55 085 87620983
Certificações: ITIL V3 | CSM
LPI-C1 | LPI-C2 | LPI-C3 | Novell CLA
Minha Pessoa: Blog
Projetos: Tux-CE | Archlinux-br 
Chakra | KDE Brasil | TLUG | PUG-CE

===================================================
 

Proteja meu endereço como estou protegendo o seu.
Não revele e-mail dos correspondentes: use Cco (Copia Carbonada Oculta).
Retire os endereços antes de reenviar. Dificulte assim a
disseminação de vírus e spam.




2012/9/13 Claudino Sales <claudino...@gmail.com>

Danilo Josino

unread,
Sep 13, 2012, 10:32:36 AM9/13/12
to tu...@googlegroups.com

Continuo achando difícil uma coisa 100%,
Se seu usuário é leigo, ele pode nem lembrar o próprio email e continuar com problema.
Se seu usuário não é leigo, pode querer copiar colar, pode digitar rápido e errado 2x (vai saber)

Eu acho que é possível verificar com envio de msg, um shell script conseguiria, mas como falei demoraria 10min heuasheuah (inviável).

Mas é por onde o Marcelo falou, confirmação é o 100%.



Em quinta-feira, 13 de setembro de 2012 09h21min56s UTC-3, Claudino Sales escreveu:

Humberto Fraga

unread,
Sep 13, 2012, 10:33:02 AM9/13/12
to tu...@googlegroups.com


Em 13 de setembro de 2012 11:24, Claudino Sales <claudino...@gmail.com> escreveu:
A ideia de enviar um e-mail para confirmação é ótimo, mas para onde irá o e-mail de confirmação enviado para um e-mail inexistente?

Não irá. E é para isso que você precisa dele. Aí você pode ter uma data de expiração e apagar as contas que não confirmaram.

SÁ, Samy

unread,
Sep 13, 2012, 10:33:43 AM9/13/12
to tu...@googlegroups.com
Estou com o Marcelo em tudo o que disse. Não existe solução 100%.
Sobre ocorrer o mesmo erro duas vezes, imagine que alguns usuários malas vão digitar uma vez e usar ctrl+c, ctrl+v... Aí é que entram os cuidados com o campo da confirmação. Dá pra voc impedir que o browser preencha pra você, deve dar pra bloquear o ctrl+v nesse campo, e por aí vai.
--
Samy

Claudino Sales

unread,
Sep 13, 2012, 10:33:58 AM9/13/12
to tu...@googlegroups.com
A única maneira 100% é termos um filtro que faça uma verificação no banco de dados de todos os sites que tem e-mail e verifique todos os e-mails contidos nele. Resumindo, praticamente impossível, mas vai uma ideia para criarmos um novo programa para ganharmos muito dinheiro.

SÁ, Samy

unread,
Sep 13, 2012, 10:37:27 AM9/13/12
to tu...@googlegroups.com
Eu diria impossível nesse sentido, pois todo servidor de emails tem uma política de privacidade. Eles não deixariam os dbs abertos pra você checar.

Mais que isso, se existisse um mecanismo do tipo, as listas para spam seriam geradas com muito mais eficiência. Bastaria gerar uma lista de logins aleatórios (como é feito), e sair checando comm os servidores. Em outras palavras, creio que esse tipo de recurso não é desejado na rede. É preferível deixar alguma responsabilidade do cadastro nas mãos do usuário.
--
Samy Sá

Danilo Josino

unread,
Sep 13, 2012, 10:38:53 AM9/13/12
to tu...@googlegroups.com
Correto


Em quinta-feira, 13 de setembro de 2012 09h21min56s UTC-3, Claudino Sales escreveu:
Reply all
Reply to author
Forward
0 new messages