Ir para conteúdo

POWERED BY:

Arquivado

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

marcelocardoso

FOR duplo

Recommended Posts

báh colega te agradeço pelo script, já estou até adaptando para uma outra necessidade.
Porém gostaria de resolver aquele FOR, preciso usar ele para pegar os emails que são selecionados pelo checkbox em formulario anterior, antes funciona para enviar todos os emails de uma só vez, mas depois q coloquei esta opção para selecionar os emails que quero enviar, precisei usar o FOR:

 

 separa = Split(Request.Form("itens"),", ")
 FOR Contador = 0 TO Ubound(separa)

Te agradeço a você e outros colegas q puderem ajudar...

Obrigado a todos pela gentileza.

Até....

Compartilhar este post


Link para o post
Compartilhar em outros sites

vocÊ está conseguindo recuperar os selecionados no checkbox

Compartilhar este post


Link para o post
Compartilhar em outros sites

porque você não pega isso e joga num array, recupera eles e envia apenas para estes ID o email...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu nobre....olhando por alto, o erro está no IF que está no meio dos dois laços FOR. Ele reclama que nao acha o NEXT, mas na verdade ele nao acha é o END IF. Dá uma olhada nos fechamentos dos IF dentro dos laços que voce fez.

 

Quando voce tira ele diz que tem um NEXT a mais...

 

Nao testei aqui..mas olhando por alto iria por esse caminho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal, agora ajustei meu for, não está dando erro nenhum, aparentemente parece que envia, não dá erro.

<%
RESPONSE.BUFFER = TRUE

 IF REQUEST.QUERYSTRING("pagina_atual") = "" OR REQUEST.QUERYSTRING("pagina_atual") = "0" THEN
	pagina_atual = 1
 			ELSE
	pagina_atual = REQUEST("pagina_atual")
 END IF

 SEPARA = Split(Request.Form("itens"),", ")
 FOR CONTADOR = 0 TO Ubound(SEPARA)

 SQL = "SELECT * FROM TB_CLIENTES_ANIVER WHERE RECNUM = " & SEPARA(CONTADOR) & ""
 SET objRS = Server.CreateObject("ADODB.RECORDSET")
     objRS.CursorLocation = 3
     objRS.CursorType     = 2
     objRS.LockType       = 1
     objRS.CacheSize      = 1
     objRS.Open             SQL, CX,,, &H0001
     objRS.PageSize       = 1
           Status         = ""

		IF NOT objRS.EOF THEN
			   objRS.ABSOLUTEPAGE = pagina_atual
		total_paginas = objRS.PAGECOUNT
		status_envio  = status_envio & FIX((pagina_atual*100)/total_paginas) & "% enviado<br>"
		
		FOR Cont = 1 TO objRS.PAGESIZE
		
			  SET Componente = Server.CreateObject("SMTPsvg.Mailer")
				  Componente.FromName 	      = "Transportes Gabardo"
				  Componente.FromAddress      = "teste@ls2001.com.br"
				  Componente.Port 			  = 25
				  Componente.RemoteHost 	  = "192.168.0.1"
				  Componente.AddRecipient       "teste", "comunicacao1@transgabardo.com.br"
				  Componente.Subject 	      = "DESEJAMOS UM FELIZ ANIVERSARIO"
				  Componente.ContentType      = "text/html"
				  Componente.BodyText 	      = "<style type=""text/css"">body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px;}</style><img src=""http://www.transgabardo.com.br/newsletter/"& session("codigoevento") &" width=""780"" height=""450"">"
				  Componente.SendMail
			  SET Componente 			      = Nothing
				 			
		     objRS.MOVENEXT
		  IF objRS.EOF THEN EXIT FOR
	    NEXT

IF INT(pagina_atual) < INT(total_paginas) THEN
   Response.Write status_envio
%>

<script language="javascript">function atualiza(){document.location.href = "<%=Request.ServerVariables("SCRIPT_NAME")%>?pagina_atual=<%=pagina_atual+1%>&<%=Session("codigoevento")%>"}setTimeout("atualiza()",5000);</script>

<%
ELSE
Response.Write "emails enviados"

END IF
END IF
NEXT

objRS.Close
   CX.Close

SET pagina_atual   = Nothing
SET total_paginas  = Nothing
SET SQL     	   = Nothing
SET objRS 		   = Nothing
SET objRS_atualiza = Nothing
SET CX             = Nothing
SET status_envio   = Nothing
%>

Porém, não está fazendo a paginação, mas não dá mais erro no FOR, sabem agora o porque isso acontece?
E a proposito xamburzum, como faço este array neste meu exemplo.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal, alguma luz...
já tentei mudar de todos os jeitos este FOR, agora até consegui achar um jeito que não dá erro, porém nao dá erro nenhum, olhem só, porém não faz a paginação na tela, o FOR agora está funfando... ok

segue código:

<%
 IF REQUEST.QUERYSTRING("pagina_atual") = "" OR REQUEST.QUERYSTRING("pagina_atual") = "0" THEN
	pagina_atual = 1
 			ELSE
	pagina_atual = REQUEST("pagina_atual")
 END IF

 SEPARA = Split(Request.Form("itens"),", ")
 FOR CONTADOR = 0 TO Ubound(SEPARA)
 
 SQL = "SELECT * FROM TB_CLIENTES_ANIVER WHERE RECNUM = " & SEPARA(CONTADOR) & ""
 SET objRS = Server.CreateObject("ADODB.RECORDSET")
     objRS.CursorLocation = 3
     objRS.CursorType     = 2
     objRS.LockType       = 1
     objRS.CacheSize      = 1
     objRS.Open             SQL, CX,,, &H0001
     objRS.PageSize       = 1
           Status         = ""

		IF NOT objRS.EOF THEN
			   objRS.ABSOLUTEPAGE = pagina_atual
		total_paginas = objRS.PAGECOUNT
		status_envio  = status_envio & FIX((pagina_atual*100)/total_paginas) & "% enviado<br>"
		
		FOR Cont = 1 TO objRS.PAGESIZE
		
			  SET Componente = Server.CreateObject("SMTPsvg.Mailer")
				  Componente.FromName 	      = "teste"
				  Componente.FromAddress      = "teste@teste.com.br"
				  Componente.Port 			  = 25
				  Componente.RemoteHost 	  = "192.1"
				  Componente.AddRecipient       "teste", "teste@teste.com.br"
				  Componente.Subject 	      = "DESEJAMOS UM FELIZ ANIVERSARIO"
				  Componente.ContentType      = "text/html"
				  Componente.BodyText 	      = "<style type=""text/css"">body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px;}</style><img src=""http://www.teste.com.br/newsletter/"& session("codigoevento") &" width=""780"" height=""450"">"
				  Componente.SendMail
			  SET Componente 			      = Nothing
				 			
		     objRS.MOVENEXT
		  IF objRS.EOF THEN EXIT FOR
	    NEXT

IF INT(pagina_atual) < INT(total_paginas) THEN
   Response.Write status_envio
%>

<script language="javascript">function atualiza(){document.location.href = "<%=Request.ServerVariables("SCRIPT_NAME")%>?pagina_atual=<%=pagina_atual+1%>&<%=Session("codigoevento")%>"}setTimeout("atualiza()",5000);</script>

<%
ELSE
Response.Write "emails enviados"
Response.Write separa(contador)
END IF
END IF
NEXT
objRS.Close
   CX.Close

SET pagina_atual   = Nothing
SET total_paginas  = Nothing
SET SQL     	   = Nothing
SET objRS 		   = Nothing
SET objRS_atualiza = Nothing
SET CX             = Nothing
SET status_envio   = Nothing
%>

Se conseguirem agora me ajudarem apenas para fazer a paginação do envio funcionar, pois depois que acertei o FOR, não funciona mais.... ok

Compartilhar este post


Link para o post
Compartilhar em outros sites

aquele code que postei, adequa ele

Compartilhar este post


Link para o post
Compartilhar em outros sites

apenas recupere os emails do checklist, se vc esta tendo dificuldade em adaptar aquele code, joque os emails recuperardos em um txt, bd, xml e faça como no code que coloquei dae é só enviar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sei qual a sua necessidade, mas porque enviar emails com paginação? Faz igual o xanburzum disse, pega os vaores do checks e colocar dentro de um vetor e depois faz somente um for.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal!

 

Agora consegui realizar com este código e FOR, porém, não está passando pela paginação, será q estou estruturando o FOR no lugar errado.

 

<!--#include file="conn.asp" -->
<%  
'SELECIONAMOS O EVENTO DO ANIVERSARIO
 SET CODIGO = CX.Execute("SELECT * FROM TB_EVENTOS_ANIVER WHERE CODIGO = '" & Request("evento") & "' OR CODIGO = '"& Request.QueryString("codigoevento") &"'")
     Session("codigoevento") = codigo("codigo")	  
%>
<style type="text/css">
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
	background: url(_img/img00.png) repeat-x;
	font: 11px Arial, Helvetica, sans-serif;
	color: #113389;
	text-decoration: none;
}
img {
	border-width: 0px;
	border-style: none;
	margin: 0px;
	padding: 0px;
}
#estrutura_sistema {
	background: url(_img/img01.png);
	height: 30px;
	position: fixed;
	width: 100%;
	z-index: 999;
	top: 0;
	text-decoration: none;
	font: bold 11px/2.8em Arial, Helvetica, sans-serif;
	margin: 0px;
	padding: 0px 0px 0px 10px;
	float: left;
	color: #FFF;
}
#conteudo{
	width: 100%;
	margin: 0;
	height: auto;
}
#centro {
	width: 100%;
	margin: 165px auto 0px;
	text-align: center;
	float: none;
	height: 50%;
}
#centraliza {
	margin-left: 10%; 
	margin-right: 10%;
}
.button {
	font: 11px/2.6em Arial, Helvetica, sans-serif;
	color: #FFF;
	text-decoration: none;
	background: #19439C;
	margin: 2px 2px 2px 45%;
	padding: 2px;
	float: left;
	height: 30px;
	width: 150px;
	display: block;
	border-style: none;
	border-radius: 30px;
	-moz-border-radius: 30px;
}
.textocentro {
	font: 11px Arial, Helvetica, sans-serif;
	color: #036;
	text-decoration: none;
	margin: 2px 41%;
	padding: 2px;
	float: left;
	height: 30px;
	width: 260px;
	display: block;
	border-style: none;
	border-radius: 30px;
	-moz-border-radius: 30px;
}
.button:hover {
	font: 11px/2.6em Arial, Helvetica, sans-serif;
	color: #FFF;
	text-decoration: none;
	background: #113389;
	margin: 2px 2px 2px 45%;
	padding: 2px;
	float: left;
	height: 30px;
	width: 150px;
	display: block;
	border-style: none;
	border-radius: 30px;
	-moz-border-radius: 30px;
}
</style>
<%
 IF REQUEST.QUERYSTRING("pagina_atual") = "" OR REQUEST.QUERYSTRING("pagina_atual") = "0" THEN
	 pagina_atual = 1
 			ELSE
	 pagina_atual = REQUEST("pagina_atual")
 END IF

 SEPARA = REQUEST.FORM(REPLACE("itens",",","<br>"))
      X = SPLIT(SEPARA,",")
          FOR EACH valor IN X
	 		   SQL = "SELECT * FROM TB_CLIENTES_ANIVER WHERE RECNUM = " & valor & ""
          NEXT
 
			 SET objRS = Server.CreateObject("ADODB.RECORDSET")
				 objRS.CursorLocation = 3
				 objRS.CursorType     = 2
				 objRS.LockType       = 1
				 objRS.CacheSize      = 1
				 objRS.Open             SQL, CX,,, &H0001
				 objRS.PageSize       = 1
					   Status         = ""
			
					IF NOT objRS.EOF THEN
						   objRS.ABSOLUTEPAGE = pagina_atual
					total_paginas = objRS.PAGECOUNT
					status_envio  = status_envio & FIX((pagina_atual*100)/total_paginas) & "% enviado<br>"
					
					FOR Cont = 1 TO objRS.PAGESIZE
					
						' SET Componente = Server.CreateObject("SMTPsvg.Mailer")
						'	  Componente.FromName 	      = "teste"
						'	  Componente.FromAddress      = "teste@teste.com.br"
						'	  Componente.Port 			  = 25
						'	  Componente.RemoteHost 	  = "098888.00.0"
						'	  Componente.AddRecipient     = objRS("NOMECLI"), objRS("EMAILCLI")
						'	  Componente.AddRecipient       "teste", "teste@teste.com.br"
						'	  Componente.Subject 	      = "DESEJAMOS UM FELIZ ANIVERSARIO"
						'	  Componente.ContentType      = "text/html"
			            '
						'			 SET COD1 = CX.Execute("SELECT * FROM TB_EVENTOS_ANIVER WHERE CODIGO = '"& SESSION("CODIGOEVENTO") &"'")
						'			 SET COD2 = CX.Execute("SELECT * FROM TB_EVENTOS_ANIVER WHERE ARQUIVO = '" & COD1("ARQUIVO") & "'")
				        ' 
						'	  Componente.BodyText 	      = "<style type=""text/css"">body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px;}</style><img src=""http://www.teste.com.br/newsletter/"& cod2("arquivo") &" width=""780"" height=""450"">"
						'	  Componente.SendMail
						' SET Componente 			      = Nothing
						
						  
						  SET ComponenteMail = Server.CreateObject("CDO.Message")
						  SET Componente = Server.CreateObject("CDO.Configuration")
							  Componente.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver")     	   = "3456435.78" '"www.teste.com.br"
							  Componente.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") 	   = 25
							  Componente.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing")      	   = 2
							  Componente.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") 	   = 1
							  Componente.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") 		   = "teste@teste.com.br"
							  Componente.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") 		   = "teste"
							  Componente.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
							  Componente.Fields.Update 
							 
						  SET ComponenteMail.Configuration = Componente
							  ComponenteMail.From          = "teste@teste.com.br"
							  ComponenteMail.To            = "teste@teste.com.br"    'objRS("EMAILCLI")
							  ComponenteMail.Subject       = "DESEJAMOS UM FELIZ ANIVERSARIO"
							 
									 SET COD1 = CX.Execute("SELECT * FROM TB_EVENTOS_ANIVER WHERE CODIGO = '"& SESSION("CODIGOEVENTO") &"'")
									 SET COD2 = CX.Execute("SELECT * FROM TB_EVENTOS_ANIVER WHERE ARQUIVO = '" & COD1("ARQUIVO") & "'")
										 
							  ComponenteMail.HTMLBody      = "<style type=""text/css"">body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px;}</style><img src=""http://www.teste.com.br/newsletter/"& cod2("arquivo") &" width=""780"" height=""450"">"
							  ComponenteMail.Send
						  SET ComponenteMail               = Nothing 
						  SET Componente                   = Nothing
						  
										
						 objRS.MOVENEXT
					  IF objRS.EOF THEN EXIT FOR
					NEXT
			
			IF INT(pagina_atual) < INT(total_paginas) THEN
			   Response.Write status_envio
%>

<script language="javascript">function atualiza(){document.location.href = "<%=Request.ServerVariables("SCRIPT_NAME")%>?pagina_atual=<%=pagina_atual+1%>&codigoevento=<%=session("codigoevento")%>"}setTimeout("atualiza()",5000);</script>

<%
ELSE
Response.Write "<br><br><br><br><br><div align=""center"">e-mails enviados!</div>"
END IF
END IF
objRS.Close
   CX.Close

SET pagina_atual   = Nothing
SET total_paginas  = Nothing
SET SQL     	   = Nothing
SET objRS 		   = Nothing
SET objRS_atualiza = Nothing
SET CX             = Nothing
SET status_envio   = Nothing
%>


Preciso de ajuda para resolver a paginação, que não está acontecendo, passa direto o envio dos emails???

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.