Estou tentando fazer um cadastro ativado por e-mail usando o Cdosys...
No entanto estão acontecendo os seguintes problemas:
1) apesar me mandar a mensagem, aparece o erro: Microsoft JET Database Engine error '80004005'
The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.
/rafa/servidor/cadastro/cadastro/cadastrar.asp, line 122 que vem a ser a linha: Set rsInsert = conexao.Execute(strInsert)
2) além deste erro, só está sendo possivel enviar e-mails para endereços do tipo: usuário@dominioparticular.com.br, quando coloco endereços do tipo ...@hotmail, ou @bol, ou @ig não envia e aparece outro erro: error '8004020f'
/rafa/servidor/cadastro/cadastro/cadastrar.asp, line 72 , que vem a ser a linha objCDOSYSMail.Send;
3) o último erro que está acontecendo é que estou tendo dificuldade em construir a mensagem do e-mail, principalmente no que diz respeito ao construtor do link com o código para ativação... estou tentando da seguinte forma: 'conteúdo da mensagem
segue abaixo, na íntegra, o script que estou usando, mas vale destacar que tomei o cuidado de entrar em contato com o servidor e me certifiquei de que tenho este componente habilitado em meu domínio... afora tentei encontrar exaustivamente em outros posts respostas para o meu problema e não encontrei...
será que alguém poderia me ajudar em mais essa?
<!--#include file="conexao.asp"-->
<%
Dim conexao
site = "www.revistaria.com" 'aqui vem o nome do seu site
seumail = "revistaria@revistaria.com" 'aqui o e-mail de quem está enviando a chave de ativação para o usuário
'abaixo as variáveis criadas para cara requisição dos formulários da página cadastro.asp
Login = Request.form("txtLogin")
Senha = Request.form("txtSenha")
email = Request.form("txtMail")
Ende = Request.form("txtEnd")
Num = Request.form("txtNum")
Endereco = Ende&", "&Num 'aqui é uma montagem do endereço, "Ende" é o endereço seguido de vírgula ", " e acrescentado o número "Num".
Cep1 = Request.form("txtCep1")
Cep2 = Request.form("txtCep2")
Cep = Cep1&"-"&Cep2 'mesmo idéia de cima
Cidade = Request.form("txtCidade")
Estado = Request.form("txtEstado")
Tel = Request.form("txtDDD") &"-"& Request.form("txtFone")
DDD = Request.form("txtFone")
Nome = Request.form("txtNome")
codigo = day(date)&month(date)&year(date)&"abc"&Login&month(date)&year(date)&minute(date) 'aqui é o código que irá ser enviando para o usuário, poderia ser qualquer coisa, desde de que respeite um diferencial dos demais, teria ques er randômico, ou ter algo que o diferendcie dos demais...como no exemplo, tem o "Login" mais algumas datas e umas letras abc só para enrolar, poderia por um código para cada tempo, se quiser incrementar...
não = "não" 'esse não é que vai decidir se o usuário está livre para navegar nas páginas restritas... quando ele terminar de cadastar ativando seu cadastro pelo e-mail, aí ele terá uma atualização para 'sim'.
data = day(date)&"/"&month(date)&"/"&year(date) 'aqui a data que foi efetuado o cadastro
IP = Request.ServerVariables("REMOTE_ADDR") 'aqui é o IP da máquina de quem efetuou o cadastro
if Request.form("txtNome") = "" then 'caso a pessoa não coloque o nome, a mensagem de boas vindas no e-mail, irá ser para o login do usuário
user = Login
else
user = Nome
end if
'aqui irá enviar para o e-mail do usuário
'cria o objeto para o envio de e-mail
Set objCDOSYSMail = Server.CreateObject("CDO.Message")
'cria o objeto para configuração do SMTP
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")
'SMTP
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.revistaria.com"
'porta do SMTP
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
'porta do CDO
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'timeout
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
objCDOSYSCon.Fields.update
'atualiza a configuração do CDOSYS para o envio do e-mail
Set objCDOSYSMail.Configuration = objCDOSYSCon
'e-mail do remetente
objCDOSYSMail.From = "revistaria@revistaria.com"
'e-mail do destinatário
objCDOSYSMail.To = request.form ("txtMail")
'assunto da mensagem
objCDOSYSMail.Subject = "ativação de registro"
'conteúdo da mensagem
objCDOSYSMail.TextBody = "http://www.revistaria.com/rafa/servidor/cadastro/cadastro/cadastrar1.asp?id="&request.form = ("codigo")
'para envio da mensagem no formato html altere o TextBody para HtmlBody
'objCDOSYSMail.HtmlBody = request.form("mensagem")
'objCDOSYSMail.fields.update
'envia o e-mail
objCDOSYSMail.Send
'destrói os objetos
Set objCDOSYSMail = Nothing
Set objCDOSYSCon = Nothing
'aqui são preenchimentos dos espaços vazios, no caso do usuário não colocar tudo corretamente
if Endereco = ", " then
Endereco = "Sem endereço"
end if
if Cep = "-" then
Cep = "sem cep"
end if
if Cidade = "" then
Cidade = "sem cidade"
end if
if Estado = "" then
Estado = "sem estado"
end if
if Tel = "-" then
Tel = "sem telefone"
end if
if Nome = "" then
Nome = "sem nome"
end if
'aqui é inserido tudo na base
strInsert = " INSERT into usuarios "
strInsert = strInsert & "(nome, login, senha, email, cidade, estado, cep, endereco, telefone, data, libera, IP, codigo)"
strInsert = strInsert + "VALUES ('" + Nome + "',"
strInsert = strInsert + "'" + Login + "',"
strInsert = strInsert + "'" + Senha + "',"
strInsert = strInsert + "'" + email + "',"
strInsert = strInsert + "'" + Cidade + "',"
strInsert = strInsert + "'" + Estado + "',"
strInsert = strInsert + "'" + Cep + "',"
strInsert = strInsert + "'" + Endereco + "',"
strInsert = strInsert + "'" + Tel + "',"
strInsert = strInsert + "'" + data + "',"
strInsert = strInsert + "'" + não + "',"
strInsert = strInsert + "'" + IP + "',"
strInsert = strInsert + "'" + codigo + "')"
'é aberta a conexao
Call abreConexao
Set rsInsert = conexao.Execute(strInsert)
'é fechada
Call fechaConexao
Set rsInsert = Nothing
Response.redirect("enviado_cadastro.asp") 'redireciona para uma página que avise que a chave de ativação foi enviada no e-mail do destinatário.
on error resume next
if Err.number <> 0 then
Call Erro("Já existe um usuário cadastrado com esse nome",Err.description)
end if
'no caso de haver um erro, pode se fazer uma página "aviso.asp" avisando do erro com um "meta refresh redirect de 8 segundos, mais ou menos", logo em seguida redirecionando para o cadastro.asp
'If err.number <> 0 then
'Response.redirect("aviso.asp")
'end if
%>
Pergunta
Notax
Pessoal, boa tarde.
Estou tentando fazer um cadastro ativado por e-mail usando o Cdosys...
No entanto estão acontecendo os seguintes problemas:
1) apesar me mandar a mensagem, aparece o erro: Microsoft JET Database Engine error '80004005'
The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.
/rafa/servidor/cadastro/cadastro/cadastrar.asp, line 122 que vem a ser a linha: Set rsInsert = conexao.Execute(strInsert)
2) além deste erro, só está sendo possivel enviar e-mails para endereços do tipo: usuário@dominioparticular.com.br, quando coloco endereços do tipo ...@hotmail, ou @bol, ou @ig não envia e aparece outro erro: error '8004020f'
/rafa/servidor/cadastro/cadastro/cadastrar.asp, line 72 , que vem a ser a linha objCDOSYSMail.Send;
3) o último erro que está acontecendo é que estou tendo dificuldade em construir a mensagem do e-mail, principalmente no que diz respeito ao construtor do link com o código para ativação... estou tentando da seguinte forma: 'conteúdo da mensagem
objCDOSYSMail.TextBody = "http://www.revistaria.com/rafa/servidor/cadastro/cadastro/cadastrar1.asp?id="&request.form = ("codigo") mas em meu e-mail vem apenas a palavra false escrita!
segue abaixo, na íntegra, o script que estou usando, mas vale destacar que tomei o cuidado de entrar em contato com o servidor e me certifiquei de que tenho este componente habilitado em meu domínio... afora tentei encontrar exaustivamente em outros posts respostas para o meu problema e não encontrei...
será que alguém poderia me ajudar em mais essa?
agradeço a atenção de todos...
forte abraço.
notax
Editado por NotaxLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.