Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ben - Hur

If Request.QueryString("acao") = "envia"

Recommended Posts

Boa! Estou com uma página que envia um email para um destinatário. Porém, necessito que seja enviado somente após de ser apertado o botão ENVIAR do formulário.. com action do form assim: "pagina.asp?acao=envia". Quando coloco o

If Request.QueryString("acao") = "envia"
antes de enviar a mensagem, não funciona.

 

<% 


While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) 
email2 = Recordset1.Fields.Item("email").Value

response.buffer = true
Server.ScriptTimeout = 1000000

dim useraction,subject,comm,emails,conn,rs,sql, message, conf, param, strTo, strFrom, strSubject, strBody, aux1, aux2, regex, objRegExp
dim totalMails


Set message = Server.CreateObject("CDO.Message")
Set conf = Server.CreateObject("CDO.Configuration")
Set param = conf.Fields



param("http://schemas.microsoft.com/cdo/configuration/sendusing")  = 2
param("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
param("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
param("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 
param.Update
corpo2 = "texto"



strTo = email2
strSubject = "Cadastro Efetuado com Sucesso."
strBody = corpo2

aux1 = chr(13)
aux2 = chr(10)
regex= " | |cc:|bcc:|"& aux1 &"|"& aux2
Set objRegExp = New RegExp
objRegExp.Pattern = regex
objRegExp.IgnoreCase = True
objRegExp.Global = True

strFrom = objRegExp.Replace(strFrom,"")
strTo = objRegExp.Replace(strTo,"")
strSubject = objRegExp.Replace(strSubject,"")

Set message.configuration = conf
'Atribui-se os valores para as propriedades do objeto
 message.From = "email@email.com"
 message.To = strTo
 message.Subject  = "Cadastro Efetuado com Sucesso."
 message.textBody = corpo2
 message.HtmlBody = Cstr(corpo2)



' Envia a mensagem!

If Request.QueryString("acao") = "envia" then

message.send

Response.Write("Enviado!")
End If


  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  Recordset1.MoveNext()
Wend
Recordset1.Close()

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que está acontecendo de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função não está sendo chamada com dou um post no form, ou seja, essas duas linhas não estão sendo executadas:

message.send

Response.Write("Enviado!")

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esqueceu do then

 

errado:

If Request.QueryString("acao") = "envia"

certo:

If Request.QueryString("acao") = "envia" then

Compartilhar este post


Link para o post
Compartilhar em outros sites

ops só agora vi o code por completo, e não tem nada a ver o request form.

 

Uma pergunta, quando você testa sem o if request ele funciona?

 

Tente usar o if no inicio do processo.. colocando ele lá no topo, essa forma é a mais indicada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm... converte forçadamente para string

If Cstr(Request.QueryString("acao")) = "envia" then

 

Agora, se não achar nada aqui

While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))

não vai mostrar mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Patrique, sem o IF o código funciona perfeitamente, porém, eu quero que só funcione depois que apertar ENVIAR e não quando carregar a página, que é o q está acontecendo. Ted'k não funcionou não. Coloquei no topo também, e não funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostra o "response.write"?

 

ja sei pq não envia o codigo todo...

pq so esta pegando essa linha

message.send

 

coloque o script completo no IF, você disse que colocou no topo e nao funcionou, englobou o script completo? deixando assim?

 

If cstr(Request.QueryString("acao")) = "envia" then

.... restante do codigo....

While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) 
email2 = Recordset1.Fields.Item("email").Value

response.buffer = true
Server.ScriptTimeout = 1000000

dim useraction,subject,comm,emails,conn,rs,sql, message, conf, param, strTo, strFrom, strSubject, strBody, aux1, aux2, regex, objRegExp
dim totalMails

Set message = Server.CreateObject("CDO.Message")
Set conf = Server.CreateObject("CDO.Configuration")
Set param = conf.Fields

param("http://schemas.microsoft.com/cdo/configuration/sendusing")  = 2
param("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
param("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
param("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 
param.Update
corpo2 = "texto"

strTo = email2
strSubject = "Cadastro Efetuado com Sucesso."
strBody = corpo2

aux1 = chr(13)
aux2 = chr(10)
regex= " | |cc:|bcc:|"& aux1 &"|"& aux2
Set objRegExp = New RegExp
objRegExp.Pattern = regex
objRegExp.IgnoreCase = True
objRegExp.Global = True

strFrom = objRegExp.Replace(strFrom,"")
strTo = objRegExp.Replace(strTo,"")
strSubject = objRegExp.Replace(strSubject,"")

Set message.configuration = conf
'Atribui-se os valores para as propriedades do objeto
 message.From = "email@email.com"
 message.To = strTo
 message.Subject  = "Cadastro Efetuado com Sucesso."
 message.textBody = corpo2
 message.HtmlBody = Cstr(corpo2)


' Envia a mensagem!
message.send

Response.Write("Enviado!")

  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  Recordset1.MoveNext()
Wend
Recordset1.Close()
End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.