Pular para o conteúdo principal

Sistema de Validação de Email

Neste artigo demonstrarei como validar se um determinado email existe ou não. Vamos utilizar de um recuso free na Internet para 10 consultas por hora para cada IP conectado na Internet. Existe diversas forma de se validar um email, para verificar se ele atende os padrões de email, mas nesse artigo demonstrarei de uma forma simples de verificar se o email existe ou não.

Como validar

Primeiramente vamos entender como funciona essa validação, a validação será feita através de um serviço disponível na internet, o site http://verify-email.org/, vamos fazer um POST para este site através de um componente Tidhttp da paleta Indy Clients, e pegando o retorno se o result foi OK ou Bad, email inexiste.

Construindo a Aplicação

Crie uma nova aplicação utilizando o Delphi 2007 através do menu File > New > VCL Forms Application, salve a aplicação em pasta, nome a Unit para uPrincipal.pas, e para o projeto de o nome de ValidarEmail, redimensione o formulário para 462x220, e altere a propriedade Position poScreenCenter.

Adicione 2 Tlabel da paleta Standard, na primeira altere o caption para “Email”, na segunda label altere a propriedade name para “lbl_msg”, adicione também um Tedit e um Tbuttob da paleta Standard, para o Edit altere a propriedade name para “edt_email” e no Button altera a propriedade caption para “Validar”. E ainda adicione o componente Tidhttp da paleta Indy Clients. E disponha os elementos conforme a figura 1 ou de acordo com a sua preferência.



Figura 1: Imagem do Formulário.

Agora vamos à codificação do exemplo, no evento onclick do Button.

Vamos precisar de uma variável do tipo Tstringlist, duas variáveis do tipo WideString.

Altere o caption do label lbl_msg para “Aguarde...” para que o usuário saiba que se deu inicio ao processo. Logo após é necessário criar a variável do tipo tstringlist, logo após vamos adicionar a stringlist o parâmetro a ser enviado, o nome do parâmetro é check e o valor do parâmetro será o text do Edit edt_email, atribua a variável URL o valor da URL para onde será feito o POST, neste caso http://verify-email.org/, o resultado do POST será atribuído a variável S, e na chamada do POST do componente idhttp, vamos passar como parâmetros a URL e a stringlist com o valor do parâmetro.

Feito o POST, vamos limpar a variável stringlist, e logo após adicionar a ela o valor de S, que é o retorno do POST. Feito isso vamos salvar o conteúdo da stringlist em um arquivo HTML, para que ele assuma os padrões de linhas, vamos salvar dentro do diretório de onde o executável esta rodando, através do método ExtractFilePath(Application.ExeName) é possível extrai o diretório de onde o programa esta rodando. Após salvo a stringlist no diretório do programa, vamos limpar a stringlista novamente e fazer o load dela novamente para pode ler o resultado da consulta do email, sabe se que por padrão que na linha 54 é que esta o result da consulta. Então vamos fazer um copy do valor dessa linha para apresentarmos no caption do lbl_msg, e assim o usuário saberá se o email existe ou não, e logo após vamos excluir o arquivo do diretório onde estava salvo.


Todo o código fonte esta no bloco de código 1.


procedure TfrmPrincipal.btn_validarClick(Sender: TObject);
var

SL : TStringlist;

S, URL: WideString;

begin

lbl_msg.Caption := 'Aguarde...';

SL := TStringlist.Create;

try

SL.Add('check='+edt_email.Text+'');

URL := 'http://verify-email.org/';

Application.ProcessMessages;

S := IdHTTP.Post(URL, SL);

Application.ProcessMessages;

SL.Clear;

SL.Add(S);

Application.ProcessMessages; SL.SaveToFile(ExtractFilePath(Application.ExeName)+'email.html');

SL.Clear;

Application.ProcessMessages;

SL.LoadFromFile(ExtractFilePath(Application.ExeName)+'email.html');

if Length(SL[54]) = 16 then

lbl_msg.Caption := Copy(SL[54], 0, 10)

else

lbl_msg.Caption := Copy(SL[54], 0, 11);

Application.ProcessMessages; DeleteFile(ExtractFilePath(Application.ExeName)+'email.html');

Application.ProcessMessages;

finally

FreeAndNil(SL);

end;

end;



Bloco de Código 1: Codificação do Button


Conclusão

O objetivo desse artigo é mostra uma forma simples de fazer um POST para uma página da internet e pega o retorna dessa página, neste exemplo como utilizar um recurso free da internet, para conseguir poder fazer um número maio de consultas é necessário comprar uma licença junto ao site. Mas como o nosso objetivo é apenas demonstrar como validar se um determinado email existe ou não, isso sistemas de cadastro ou até sistemas de envio de email. Agora basta você aproveitar esse recuso e implementar conforme suas necessidades.


Comentários

Gabi disse…
Meu Deus! Até que enfim alguém que ensinou passo a passo algo que funciona. Muito obrigada mesmo cara!!!

P.S. Eu só tive que fazer uma pequena modificação: a linha da resposta foi 72!

Postagens mais visitadas deste blog