ASP.NET 2.0 - Envio de email automático para cadastro de usuário


Vou começar este artigo descrevendo um cenário muito comum para cadastrar usuário em um página na internet:

1- O usuário acessa um site que exige o cadastramento prévio
2- O site apresenta um formulário de login para usuários já cadastrados e um formulário para cadastrar novos usuários
3- O novo usuário efetua o seu cadastramento informando seus dados e seu email
4- Ao terminar o cadastro um email será enviado para o usuário contendo o login e senha de acesso
5- O usuário acessa o seu email e obtendo o login e a senha de acesso efetua o login no site

Imagine então que você tenha que implementar estas funcionalidades para um cliente e que não tem muito tempo disponível ou seja o 'serviço é para ontem'...

Se você conhecia a linguagem ASP na sua versão anterior sabe o trabalho que implementar estas funcionalidades vai dar. Eu conheço ASP e JSP e mesmo que o desenvolvedor seja uma pessoa organizada e contenha sua biblioteca de funções e códigos o trabalho é grande. No mínimo você terá que criar 4 formulários e todo o código inerente aos mesmos para tratar a entrada de dados efetuar o cadastramento sem contar a parte de enviar o email onde seria usado um componente de terceiros ou um componente como o CDONTS no caso da ASP.

A boa notícia é que a ASP.NET 2.0 permite realizar tal tarefa de forma rápida e sem praticamente termos que digitar um única linha de código.

Nota:  Acompanhe o artigo ASP.NET  2.0 - Usando o Roles e MemberShip  para saber mais sobre o assunto.

Abra o Visual Web Developer Express Edition e crie um novo Web Site na opção File->New Web Site e informe o nome acessoRestrito.

Remova página Default.aspx que foi criada. A seguir no menu WebSite-> Add New Item na janela Templates selecione o item Master Page aceitando o nome padrão MasterPage.master e defina o seguinte leiaute para a Master Page:

A seguir inclua uma nova página chamada Home.aspx e marque as opções Select master page e Place code in separate file;

 

A seguir selecione a Master Page já criada e clique no botão OK e digite a informação :

Agora na página Home.aspx digite o texto conforme a figura abaixo e inclua a partir da ToolBox, guia Login, um controle LoginName que irá exibir o nome do usuário que estiver logado;

Nota: Veja também o artigo : ASP.NET  2.0 - Os novos controles de acesso a dados

Inclua duas novas páginas, uma com nome de Login.aspx e outra com o nome de NovoUsuario.aspx , sempre selecionando a opção Select master page.

Selecione a página Login.aspx e inclua nesta página , a partir da ToolBox, guia Login, o controle Login:

Selecione o controle Login e defina as seguintes propriedades para o mesmo:

Ao final sua página Login.aspx deverá ter o seguinte jeitão:

Neste momento a nossa página Login.aspx terá um link para a página NovoUsuario.aspx onde o usuário efetuará o seu cadastro de novo usuário.

Devemos ainda definir a propriedade AutoGeneratePassword como True , pois a senha será gerada de forma automática e enviada via email para o usuário.

Também devemos definir a propriedade LoginCreateUser como False , pois o novo usuário não deverá fazer o Login agora , somente quando receber sua senha via email.

Agora vamos configurar os dados do servidor SMTP que será usado para enviar o e-mail. Abra o arquivo web.config e inclua as definições conforme destacado na figura abaixo onde indicamos o nome do servidor SMTP(host) o userName e a password. Aqui você deve informar os dados do SEU servidor SMTP.

Com esta parte pronta, vamos agora criar um modelo de E-mail onde iremos informar o Login e a Senha do novo usuário.

Clique com o botão direito do mouse sobre o nome do projeto e selecione Add New Item. Na janela Templates selecione Text File e informe o nome Modelo.txt.

Agora inclua o texto no arquivo usando as tags da ASP <% > informando o nome do usuário e a senha que será gerada dinamicamente.

Finalmente no evento Load da página NovoUsuario.aspx digite o seguinte código:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

CreateUserWizard1.MailDefinition.BodyFileName = "Modelo.txt"
CreateUserWizard1.MailDefinition.Subject = "Aviso de registro de Novo usuário."
CreateUserWizard1.MailDefinition.From = "macoratti@yahoo.com"

End Sub

No código acima estou usando o arquivo Modelo.txt e informando que é um aviso de registro de novo usuário.

Nota: Veja também o artigo : ASP.NET  2.0 - Enviando Email

Você vai precisar ter um servidor SMTP configurado para poder testar este projeto.

Você deverá criar um novo usuário usando a ferramenta Web Site Administration Tool  ou WSAT via menu Web Site -> ASP.NET Configuration , clicar no link Security e definir um usuário para o seu site de forma a implementar o applications services no seu site e criar o banco de dados ASPNETDB.MDF no seu site contendo as tabelas para gerenciar os usuários e perfis.

Nota:  Veja também o artigo : ASP.NET  2.0 - Usando Application Services 

 

Pegue o projeto completo aqui :   acessoRestrito.zip

 

Você aprendeu neste artigo como usar os controles de Login para criar um processo de envio de senha automático usando um servidor SMTP para um novo usuário que se cadastra no seu site.

 

Agora é com você: tente , invente,  incremente...

 

Eu sei é apenas ASP.NET mas eu gosto...