Buscar

Usercontrol - esqueci a senha (enviando e-mail's para o usuário) ultima parte

nome

Exio

Colunista ainda sem descrição. Caro colunista, por favor envie-nos sua descrição.

Esqueci a Senha - Enviando E-Mail pelo UserControl - MailUserControl (UCMail)

1 - Apresentação

    Estimados amigos desenvolvedores, chegamos a última parte de nosso tutorial sobre o UserControl. Para encerrar este tema, apresento o componente de mensagem. Vamos dar uma pequena passeada pelo código-fonte do componente, e destacar uma função importante que nos ajudará a montar o corpo do e-mail através de parâmetros. Então vamos começar a fazer o nosso trabalho.

2 - É importante analisar o Código-fonte?

    Qualquer componente que você tenha acesso ao código-fonte é sempre uma base de informações bem interessante. Muitos desenvolvedores aperfeiçoam as suas técnicas lendo e aprendendo, em seguida, acabam implementando ou personalizando esses componentes. o UserControl é uma suite de código-fonte aberto e com uma altíssima qualidade de programação. Se você abrir o código do UCMail, verá que não é muito extenso e que na verdade, é uma mistura de componentes Indy (SMTP) com algumas propriedades que são enviadas diretamente pelo componente UCMail. Abra o arquivo UCMail.pas e veja esse código:

function TMailUserControl.ParseMailMSG(Nome, Login, Senha, Email, Perfil, txt : String): String;
begin
  Txt    := StringReplace(txt, ':nome', nome, [rfReplaceAll]);
  Txt    := StringReplace(txt, ':login', login, [rfReplaceAll]);
  Txt    := StringReplace(txt, ':senha', senha, [rfReplaceAll]);
  Txt    := StringReplace(txt, ':email', email, [rfReplaceAll]);
  Txt    := StringReplace(txt, ':perfil', perfil, [rfReplaceAll]);
  Result := Txt;

end;

    Esse código é declarado como privado e é usado pelo próprio componente, para montar o corpo de texto dos e-mail's que serão enviados para o usuário.

3 - Começando o trabalho de configuração para o envio de e-mail

    Adicione ao Datamodule um componente TMailUserControl(UCMail) presente na paleta UC Main. Todos os componentes que adicionamos anteriormente faziam conexão com o UserControl, agora a situação se inverte; o UserControl e quem se conecta com o MailUserControl. Na propriedade Name do MailUserControl entre com ucMail. Clique sobre o componente ucMyControl e na propriedade MailUserControl preencha com ucMail conforme apresentado na figura abaixo.

    

    Quando esta conexão dos dois componente é estabelecida, na janela de login do
UserControl há um link que se torna visível e funcional depois que o usuário entra com o seu nome. Quando não existe a conexão, o label "Esqueci a Senha" não será apresentado aos usuários do seu sistema.



4 - Configurações básicas do MailUserControl

    Expanda todas as propriedades presentes no ucMail que adicionamos no datamodule. Os seguintes eventos ocorrem com:

Propriedade AdicionaUsuario

    Quando a propriedade Ativo estiver definida para TRUE, um e-mail é enviado para o
usuário quando ele é registrado no sistema através através da janela de cadastro de usuários - visto no primeiro tutorial. A propriedade Titulo é usada para definir o Assunto.

Propriedade AlteraUsuario

    Ocorre quando os dados do usuário são alterados através da janela de cadastro de
usuários. Só ocorre o envio do e-mail quando a propriedade Ativo estiver definida para True.

Propriedade EmailRemetente

    Defina essa propriedade contendo a conta de e-mail do usuário. Exemplo: se os
e-mail's forem emitidos por uma conta do Yahoo chamada "suporteMinhaEmpresa@yahoo.com.br", preencha com essa conta.

Propriedade EsqueceuSenha 

    Ocorre quando o login de usuário está sendo executado. Quando o usuário preenche o
seu nome na janela de login, e que por ventura tenha esquecido da senha, quando clica no label "Esqueci a senha", o usercontrol efetuará um pesquisa procurando pelo endereço de e-mail registrado no banco de dados, no cadastro de usuários; se o nome de usuário for encontrando no sistema, o envio do e-mail e executado. A propriedade LabelLoginForm é o texto que aparece na janela de login para o usuário. Você pode mudar essa propriedade colocando qualquer outro texto que achar ser melhor. A propriedade MensagemEmailEnviado, é uma mensagem que é apresentada ao usuário depois do componente enviar com sucesso o e-mail.

Propriedade NomeRemetente

    É preenchido no campo "De:" do e-mail. Quando o e-mail é recebido, aparece DE:
Sistema JEDY de E-mail, para: "Sabrina Sapeca" por exemplo.

Propriedade Porta

    É a porta padrão de envio de e-mail pelo protocolo SMTP (Simple Mail Transfer
Protocol). O número dessa porta é 25 por Default, porém outros servidores de e-mail poderão exigir uma porta diferente. Um exemplo é para os que usam o servidor de e-mail do Yahoo que exige a porta 467 (se não estou enganado).

Propriedade Senha

    É a senha que você usar para acessar essa conta. Caso a sua senha seja
"123456654321" é essa a senha que deve ser preenchida.

Propriedade SenhaForcada

    Quando alguém ou você tenta acessar o sistema tentando adivinhar a senha.

Propriedade SenhaTrocada

    O e-mail é enviado quando o usuário troca a senha através do comando de menu

definido na propriedade ChangePasswordform > MenuItem do componente UserControl. Caso
esta função tenha sido liberada para os usuários.

Propriedade ServidorSMTP

    Nessa propriedade deve ser especificado o servidor de SMTP. Exemplo: Se você usa o
Yahoo como servidor de e-mail, defina "smtp.mail.yahoo.com.br". Se a sua empresa tem um domínio, então use o servidor do seu domínio, exemplo: "smtp.Jedy.com.br".

Propriedade Usuario

    Deve ser o nome do proprietário ou de login da conta de e-mail. Exemplo: Se você
usa o servidor de E-mail Bol e seu login de usuário é SouJedySetimoDam; esse é o nome de usuário que deve ser registrado na propriedade. 

Veja o Object Inspector com todas as propriedades expandidas



    Todos os comandos que acabam resultando no envio de um e-mail possuem a propriedade Mensagem. Essa propriedade pode ser preenchida com um texto apropriado a cada evento em que foi acionado.

Exemplo: Se o usuário trocou a senha, você pode enviar um texto
(corpo da mensagem) mais ou menos com esse dizeres: "Através do comando de troca de senha, você entrou com uma senha nova e que terá validade no próximo login. Essa mensagem não deve ser respondida. Ela e gerada automaticamente pelo seu sistema mais preferido - Sistemas Jedy Sétimo Dam. Obrigado! Passe bem!".

    Porém, você lembra do que
falei no início desse tutorial? Sobre aquela parte do código-fonte UCMail? Nós podemos nos beneficar criando uma mensagem mais ou menos assim, veja a figura abaixo:



    Feito isso amigos, podemos fazer um teste digitando um nome válido de usuário registrado em nosso pequeno sistema e que tenha um e-mail válido é claro. Digite o nome do usuário e quando o campo "Esqueci a Senha" ficar habilitado, clique nele. Uma pequena janela se abrirá informando os passos do envio do e-mail. Se você estive usando o Yahoo ou qualquer outro provedor de serviços de mensagens (smtp), deverá consultar a ajuda dos provedores e obter as informações sobre o sistema de envio e recepção de mensagens usando o POP e SMTP. Se ocorrer uma pequena exceção exigindo o recurso de envio seguro, acesse o site www.usercontrol.net e lá você encontrará um post do usuário bitzero_000 (que sou eu) falando a forma de corrigir esse pequeno problema. Isso deverá acontecer principalmente com os serviços de mensagem do Yahoo, pelos testes que fiz.

    Amigo, aqui me despeço (acho que é assim que se escreve) em relação ao tutorial dos componentes do UserControl. Foi muito bom saber que muitos usuários acessaram e estão procurando conhecer esse conjunto de componentes gratuítos. Todos aqueles que fizerem questão de participar e ampliar os recursos dessa maravilhosa suite, são bem-vindos. Só assim, poderemos melhorar ainda mais o que já temos.

    Não esquecendo aqui também de ressaltar a importância do principal desenvolvedor e também quem disponibilizou os componentes - o
Rodrigo (Qmd), ao Luiz Benevenuto - desenvolvedor e mantenedor do site, e Fellipe Henrique (desenvolvedor); todos eles, desenvolvedores e com uma proposta aberta de contribuir com o mundo dos desenvolvedores sem cobrar nada em troca.

Abraços - Exio

Publicidade

Vote no artigo




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes do artigo

Categoria: Componentes
Adicionado dia: 04/04/07
Por: Exio
Visualizado: 34733 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009