Estou fazendo um sistema de cadastro de usuários, gostaria de saber como faço pra enviar aquele e-mail de validação, pra que o usuário tenha q abrir o e-mail dele e confirmar o registro no site.
Pelo que pesquisei o cdonts não é o mais apropriado.
Obrigado

E-mail De Validação
Started By aipim2000, 21/09/2004, 17:08
3 replies to this topic
#1
Posted 21/09/2004, 17:08
Nã nã nã nã!!!
O ministério da sáude adverte
Tomar cerveja faz nascer cabelo no cérebro.
O ministério da sáude adverte
Tomar cerveja faz nascer cabelo no cérebro.
#2
Posted 21/09/2004, 17:28
Nunca fiz isso, mas parando pra pensar agora, que voce postou esse topico... acho que pode ser simples.
Qdo o cara efetuar o cadastro e colocar o email dele,
crie um SESSION usando o username e email do cara,
dados esses que serao passado pelo brownser, e enviado no email do cara.
exemplo:
www.teste.com.br/tanana/checando.asp?username=usernamedele&x=8798j87ghFGaxsaAdfscffd
Coloque uma pagina num onde nao exista nenhum menu em seu site que possa acessala, no caso a pagina checando.asp.
nela vc faz a verifica, se esta pagina foi acessada.
se ela foi acessado, significa que o cara recebeu no seu email, entao vc pega o valor username (request.QueryString) para modificar algum campo no banco de dados. Ex. se a pagina foi acessada, habilite um checkbox que da acesso a conta do cara.
vc conseguiu entender?
Qdo o cara efetuar o cadastro e colocar o email dele,
crie um SESSION usando o username e email do cara,
dados esses que serao passado pelo brownser, e enviado no email do cara.
exemplo:
www.teste.com.br/tanana/checando.asp?username=usernamedele&x=8798j87ghFGaxsaAdfscffd
Coloque uma pagina num onde nao exista nenhum menu em seu site que possa acessala, no caso a pagina checando.asp.
nela vc faz a verifica, se esta pagina foi acessada.
se ela foi acessado, significa que o cara recebeu no seu email, entao vc pega o valor username (request.QueryString) para modificar algum campo no banco de dados. Ex. se a pagina foi acessada, habilite um checkbox que da acesso a conta do cara.
vc conseguiu entender?
#3
powerAsp_X
Posted 21/09/2004, 18:16
Primeiro vc deve ter em seu banco de dados, na tabela de usuários um campo que vai informar se o usuário está ativo ou não.
Para o código abaixo, utilizei uma tabela com o nome tb_Usr com a seguinte estrutura:
UsrID -> auto-numeração
usr_Nome -> Texto (50)
usr_Email -> Texto (50)
usr_Cidade -> Texto (50)
usr_Cod -> Texto(50)
usr_Ativo -> Texto (1)
Se o usuário estiver ativo, o campo usr_Ativo recebe S caso contrario recebe N.
Segue o codigo completo para vc, blz?
Não vou fazer nenhum tipo de validação javascript para que o código fique o mais limpo possível.
Cadastro.htm
Pagina cadastro.asp
Pagina cadastro_ok.asp
Pagina ativa_cadastro.asp
Para o código abaixo, utilizei uma tabela com o nome tb_Usr com a seguinte estrutura:
UsrID -> auto-numeração
usr_Nome -> Texto (50)
usr_Email -> Texto (50)
usr_Cidade -> Texto (50)
usr_Cod -> Texto(50)
usr_Ativo -> Texto (1)
Se o usuário estiver ativo, o campo usr_Ativo recebe S caso contrario recebe N.
Segue o codigo completo para vc, blz?
Não vou fazer nenhum tipo de validação javascript para que o código fique o mais limpo possível.
Cadastro.htm
<html> <head> <title>Ativação de Cadastro por E-mail</title> </head> <body> <form action="cadastro.asp" method="post"> <table border="0" cellpadding="0" cellspacing="0" width="40%" height="131"> <tr> <td width="43%" align="right" height="21">Nome:</td> <td width="57%" height="21"><input type="text" size="20" name="nome"></td> </tr> <tr> <td width="43%" align="right" height="21">Cidade:</td> <td width="57%" height="21"><input type="text" size="20" name="cidade"></td> </tr> <tr> <td width="43%" align="right" height="21">E-mail:</td> <td width="57%" height="21"><input type="text" size="20" name="email"></td> </tr> <tr> <td width="100%" colspan="2" height="68"> <p align="center"><input type="button" value="Cadastrar" name="submit"></td> </tr> </table> </form> </body> </html>
Pagina cadastro.asp
<% Function GerarChave(valores) Dim strArray(61) Dim chave, num strArray(0) = "0" strArray(1) = "1" strArray(2) = "2" strArray(3) = "3" strArray(4) = "4" strArray(5) = "5" strArray(6) = "6" strArray(7) = "7" strArray(8) = "8" strArray(9) = "9" strArray(10) = "A" strArray(11) = "B" strArray(12) = "C" strArray(13) = "D" strArray(14) = "E" strArray(15) = "F" strArray(16) = "G" strArray(17) = "H" strArray(18) = "I" strArray(19) = "J" strArray(20) = "K" strArray(21) = "L" strArray(22) = "M" strArray(23) = "N" strArray(24) = "O" strArray(25) = "P" strArray(26) = "Q" strArray(27) = "R" strArray(28) = "S" strArray(29) = "T" strArray(30) = "U" strArray(31) = "V" strArray(32) = "W" strArray(33) = "X" strArray(34) = "Y" strArray(35) = "Z" strArray(36) = "a" strArray(37) = "b" strArray(38) = "c" strArray(39) = "d" strArray(40) = "e" strArray(41) = "f" strArray(42) = "g" strArray(43) = "h" strArray(44) = "i" strArray(45) = "j" strArray(46) = "k" strArray(47) = "l" strArray(48) = "m" strArray(49) = "n" strArray(50) = "o" strArray(51) = "p" strArray(52) = "q" strArray(53) = "r" strArray(54) = "s" strArray(55) = "t" strArray(56) = "u" strArray(57) = "v" strArray(58) = "w" strArray(59) = "x" strArray(60) = "y" strArray(61) = "z" Randomize Do While Len(chave) < valores num = strArray(Int(61 * Rnd )) chave = chave + num Loop GerarChave = chave End Function Dim nome, cidade, email Dim objConexao, rs, sql Dim caminho Dim sNameTo, sNameFrom, sEmailFrom, sText, sEmailTo, sAssunto nome = Trim(Request("nome")) cidade = Trim(Request("cidade")) email = Trim(Request("email")) nome = Replace(nome, "'","''") cidade= Replace(cidade, "'","''") email= Replace(email, "'","''") caminho = "bd/banco.mdb" 'endereço do banco de dados Set objConexao = Server.CreateObject("ADODB.Connection") objConexao.Open "Provider=Microsoft.Jet.Oledb.4.0; Data Source=" & Server.MapPath(caminho) Sql = "Insert Into tb_Usr(usr_Nome,usr_Email,usr_Cidade,usr_Ativo) Values " Sql = Sql & "('" & nome & "', '" & email & "', '" & cidade & "','N')" objConexao.Execute(Sql) Set objConexao = Nothing codUsr = GerarChave(50) 'Pegando os dados digitados nos campos e colocando em variaveis sNameFrom = nome sEmailFrom = "email_do_seu_site@seu_site.com.br" sEmailTo = email sNameTo = "Nome do seu Site" sText = "Para ativar sua conta, por favor clique no link abaixo:<p><a href='http://www.seusite.com.br/ativa_cadastro.asp?u=" & codUsr & "'>Ativar Cadastro</a>" sAssunto = "Ativação da Conta" 'Cria o objeto set mailer = server.createobject("SMTPsvg.Mailer") Mailer.FromName = sNameFrom Mailer.FromAddress = sEmailFrom 'Host para envio de emails 'CONFIGURE ESTA LINHA ! Mailer.RemoteHost = "smtp.servidor.com.br" Mailer.AddRecipient sEmailTo, sNameTo Mailer.Subject = sAssunto & " - E-mail" 'Monta a texto para o envio strMsgHeader = sNameFrom & "(" & sEmailFrom & ") vbCrLf & vbCrLf strMsgFooter = sText Mailer.BodyText = strMsgHeader & strMsgFooter Mailer.SendMail Response.Redirect("cadastro_ok.asp?email=" & email) %>
Pagina cadastro_ok.asp
<html> <body> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td width="100%"> <p align="center">Seu cadastro foi efetuado com sucesso.</p> <p align="center">Para ativar sua conta, utilize o link enviado para o e-mail<%=Trim(request("email"))%></p> <p align="center">Obrigado.</p> </tr> </table> </body> </html>
Pagina ativa_cadastro.asp
<% Dim nome, email, codigo Dim objConexao, rs, sql Dim caminho nome = Trim(Request("nome")) codigo = Trim(Request("u")) email = Trim(Request("email")) nome = Replace(nome, "'","''") email= Replace(email, "'","''") caminho = "bd/banco.mdb" 'endereço do banco de dados Set objConexao = Server.CreateObject("ADODB.Connection") objConexao.Open "Provider=Microsoft.Jet.Oledb.4.0; Data Source=" & Server.MapPath(caminho) Sql = "Select Nome From tb_Usr Where Usr_Cod = '" & codigo & "'" Set rs = objConexao.Execute(Sql) If Not rs.EOF Then 'se encontrar o usuario no banco de dados, atualiza a situacao dele para usuario ativo objConexao.Execute("Update tb_Usr Set usr_Ativo = 'S' Where usr_Cod='" & codigo & "'") Response.Write("Ok.<p>A sua conta foi liberada com sucesso!") Else Response.Redirect("erro.htm") ' se nao achar, manda o usuario para a pagina de erro End if Set rs = Nothing Set objConexao = Nothing %> Claro que o codigo é bem simples. Qqr coisa, dá o toque. []'s :ph34r:
#4
Posted 22/09/2004, 08:46
Poxa valeu!
Até que a parte de criar o codigo e a parte do banco de dados com a informação se a conta está ativa ou não já tinha uma idéia de como fazer, o que não sabia mesmo era como enviar o e-mail.
Vou testar aquele do smtp, qualquer coisa pergunto aqui de novo.
Valeu Thalisvalle e PowerAsp_X.
Até que a parte de criar o codigo e a parte do banco de dados com a informação se a conta está ativa ou não já tinha uma idéia de como fazer, o que não sabia mesmo era como enviar o e-mail.
Vou testar aquele do smtp, qualquer coisa pergunto aqui de novo.
Valeu Thalisvalle e PowerAsp_X.
Nã nã nã nã!!!
O ministério da sáude adverte
Tomar cerveja faz nascer cabelo no cérebro.
O ministério da sáude adverte
Tomar cerveja faz nascer cabelo no cérebro.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)