Ir para conteúdo

POWERED BY:

Arquivado

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

zalu

Verificar a existencia de um Email

Recommended Posts

Bom, caso você queira validar um e-mail, é simples.Tipo, você tem q ver se a string tem um @, se após o @ tem um domínio válido, com um texto, um ponto e mais um texto, e se antes do @ tem texto.Isso é um e-mail válido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, caso você queira validar um e-mail, é simples.

Tipo, você tem q ver se a string tem um @, se após o @ tem um domínio válido, com um texto, um ponto e mais um texto, e se antes do @ tem texto.

Isso é um e-mail válido.

Nem sempre. Essa afirmação é muito vaga. Então se eu digitar pipoca.de@microondas.eh.boa será um e-mail válido ? http://forum.imasters.com.br/public/style_emoticons/default/yay.gif

 

Há muitas regras complexas na validação de um endereço de e-mail. Certa vez criei a ER abaixo. Tempos depois descobri que não era perfeita, pois há provedores que fogem das normas especificadas pelos RFC's cabíveis.

 

([A-Za-z0-9](([\w.-][^._-]{2,}){0,61})[A-Za-z0-9])@([A-Za-z0-9]([A-Za-z0-9-]{0,61})?[A-Za-z0-9]\.)+([A-Za-z]{2,6})
Esta ER criei em base de um RFC (não me lembro qual) que especifica o formato do e-mail. Porém, como não são todos os provedores de e-mail que seguem as normas, fica complicado fazer uma ER que funcione 100% ... :unsure:

 

 

[]’s :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resurgindo esse tópico.... e esse whois como deve ser feito? estou aqui tentando e não estou conseguindo. Estou começando agora a aprenedr PHP e meu código está dando um erro, até agora ele está assim:

 

<?$nome = $_POST["nome"];$email = $_POST["email"];$endereco = $_POST["endereco"];$telefone = $_POST["telefone"];$texto = nl2br($_POST["texto"]);$correto = 0;//verificando se existe "@" no e-mail...function verifica_email($email){ if(substr_count($email,"@")){//verifica se tem o "@"...  $correto = 1; }}if(correto == 1){ $mensagem = "Nome: $nome E-mail: $email Endereço: $endereco Telefone: $telefone Texto: $texto"; mail("email@dominio.com.br", $nome, $mensagem); echo "<script> window.alert('Email enviado com sucesso!'); </script>"; echo "<script> history.go(-1); </script>";}else{ echo "<script> window.alert('Email incorreto!'); </script>"; echo "<script> history.go(-1); </script>"; }?>
http://www.lecowd.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o ursolouco falou :

 

<?php

function validate_email($email){

$exp = "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$";

if(eregi($exp,$email)){

if(checkdnsrr(array_pop(explode("@",$email)),"MX")){
return true;
}else{
return false;
}

}else{

return false;

} 
}
?>

obs: checkdnsrr só funciona em servidores linux

 

checkdnsrr

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele tinha dito que não funcionava corretamente pois tem alguns lugares que não aceita... estive dando uma analizada mais céria no meu código e agora está fncionando corretamente...

 

<?$nome = $_POST["nome"];$email = $_POST["email"];$endereco = $_POST["endereco"];$telefone = $_POST["telefone"];$texto = nl2br($_POST["texto"]);$correto = 0;//verificando se existe "@" no e-mail...if(substr_count($email,"@")){//verifica se tem o "@"... $mensagem = "Nome: $nome E-mail: $email Endereço: $endereco Telefone: $telefone Texto: $texto"; mail("email@dominio.com.br", $nome, $mensagem); echo "<script> window.alert('Email enviado com sucesso!'); </script>"; echo "<script> history.go(-1); </script>";}else{ echo "<script> window.alert('Email incorreto!'); </script>"; echo "<script> history.go(-1); </script>"; }?>

porém esse só visualiza se tem em algum lugar do e-mail um "@" nada mais.

 

http://www.lecowd.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao verificar se só tem o "@" é uma validação muito fraca

o melhor mesmo é usando Expressoes Regulares e melhor ainda usando

checkdnsrr dai verifica se realmente o email existe

Compartilhar este post


Link para o post
Compartilhar em outros sites

if(checkdnsrr(array_pop(explode("@",$email)),"MX")){return true;}else{return false;}

Existe algum modo de fazer isto, mas para servers windows?

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.