Ir para conteúdo

POWERED BY:

Arquivado

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

xanburzum

[Resolvido] Newsletter com paginação

Recommended Posts

Newsletter com paginação

 

<%
Response.Buffer = True 

'Declara as variaveis a serem usadas neste script
Dim pagina_atual, total_paginas, ComandoSQL, objRS, objRS_atualiza, Conexao, status_envio

'Numero de registros por pagina (emails a serem enviados, neste caso, 10 por vez)
Const registros_por_pagina = 10

'Verifica o numero da pagina de registros a ser consultada
If Request.QueryString("pagina_atual") = "" Or Request.QueryString("pagina_atual") = "0" Then
pagina_atual = 1
Else
pagina_atual = Request("pagina_atual")
End If

'Cria conexao com o banco de dados, informe corretamente o caminho do banco de dados
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../../dados/associados.mdb")

'Captura o email dos registros da tabela pela ordem alfabética
ComandoSQL = "SELECT email FROM tabela ORDER BY email ASC"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.CursorLocation = 3
objRS.CursorType = 2
objRS.LockType = 1
objRS.CacheSize = registros_por_pagina
objRS.Open ComandoSQL, Conexao,,, &H0001
objRS.PageSize = registros_por_pagina
status = ""

If Not objRS.EOF Then

'Informa o numero da pagina a ser utilizada
objRS.AbsolutePage = pagina_atual

'Captura o numero total de paginas criadas
total_paginas = objRS.PageCount

'Calcula o percentual de emails enviados até o momento
status_envio = status_envio & Fix((pagina_atual*100)/total_paginas) & "% enviado<br>"

'Percorre todos os registros da pagina atual para capturar os email a serem enviados a newsletter
For Cont = 1 to objRS.PageSize

'Para mensagem em HTML utilize sempre este bloco no inicio da mensagem a ser enviada
Mensagem = ""
Mensagem = Mensagem &"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>"
Mensagem = Mensagem & "<HTML><HEAD>"
Mensagem = Mensagem & "<META content='text/html; charset=iso-8859-1' http-equiv=Content-Type>"
Mensagem = Mensagem & "<META content='MSHTML 5.00.2614.3500' name=GENERATOR></HEAD>"
Mensagem = Mensagem & "<BODY leftmargin=0 rightmargin=0 bottommargin=0 topmargin=0>"

'Informa a mensagem a ser enviada, neste caso, ela pode conter codigo HTML
Mensagem = Mensagem & "<FONT face=Arial size=2>Ola,<br><b>Tudo bem contigo?</b></FONT>"

'Para mensagem em HTML utilize sempre este bloco no final da mensagem a ser enviada
Mensagem = Mensagem & "</BOBY>"
Mensagem = Mensagem & "</HTML>"

'Envia a mensagem para o email do registro atual
Set ObjMail = Server.CreateObject("CDONTS.NewMail")


'Informa o email atual a ser enviado
ObjMail.to = objRS("email")

'Informa o email do remetente, o titulo do email e outras configurações 
ObjMail.from = "seu_email@servidor.com.br"
ObjMail.subject = "Novidades"
ObjMail.Importance = 1
ObjMail.BodyFormat = 0
ObjMail.MailFormat = 0

'Informa o texto da mensagem
ObjMail.body = Mensagem

'Envia o email
ObjMail.send

'Elimina variavel da memória
Set ObjMail = nothing

'Vai para o proximo registro da pagina
objRS.MoveNext
Next

%>

<html>
<head>
<title>Newsletter</title>
</head>
<body>

<%
If Int(pagina_atual) < Int(total_paginas) Then

'Informa o status do envio da newsletter
Response.Write status_envio

'Codigo JavaScript para atualizar a pagina e enviar os proximos emails, neste caso, a cada 5 segundos
%>

<br>Aguarde o envio da newsletter...

<script LANGUAGE="JavaScript">
<!--
function atualiza(){
document.location.href = "<%=Request.ServerVariables("SCRIPT_NAME")%>?pagina_atual=<%=pagina_atual+1%>"
}
setTimeout("atualiza()",5000);
//-->
</SCRIPT>

<%
Else

'Informa que o envio da newsletter foi concluido
%>

Envio da Newsletter concluido.

<%
End If
End If
%>

</body>
</html>

<%
'Fecha a conexao com o banco de dados
objRS.Close
Conexao.Close

'Elimina as variaveis da memória do servidor
Set pagina_atual = Nothing
Set total_paginas = Nothing
Set ComandoSQL = Nothing
Set objRS = Nothing
Set objRS_atualiza = Nothing
Set Conexao = Nothing
Set status_envio = Nothing
%>

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.