<% '-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# ' Loja Exemplo Locaweb ' Versão: 6.4 ' Data: 12/09/06 ' Arquivo: ADM_envia_newsletter.asp ' Versão do arquivo: 0.0 ' Data da ultima atualização: 27/03/08 ' '----------------------------------------------------------------------------- ' Licença Código Livre: http://comercio.Locaweb.com.br/gpl/gpl.txt '-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# ' Esta página só pode ser acessada se o visitante já se autenticou checa_senha() 'Verifica se o perfil de usuário permite acesso a esta página Call checa_perfil_admin(""&ADMMailing&"") Call abre_conexao(conexao) '***Recupera a sessão para quando ocorrer o REFRESH da página de=Session("de") emailde=Session("emailde") formato=Session("formato") enviar=Session("enviar") para=Session("para") emailpara=Session("emailpara") assunto=Session("assunto") conteudo=Session("conteudo") %> <%=Application("NomeLoja")%>
• Envio de Newsletter

<% URLloja = Replace(Application("URLloja"),"painelctrl/","") If enviar="especifico" Then '***Envia email apenas para endereço colocado no formulário sem uso do Banco de dados... Set Mailer = Server.CreateObject("SoftArtisans.SMTPMail") Mailer.FromName = de Mailer.FromAddress= emailde Mailer.RemoteHost = "localhost" Mailer.AddRecipient para, emailpara Mailer.Subject = assunto Mailer.HTMLText = conteudo & "
Para remover o email de nosso cadastro clique aqui." Mailer.SendMail Set Mailer = Nothing%>
Newsletter enviada com sucesso!

<% ElseIf enviar="cadastrados" Then '*** Verifica se há e-mails cadastrados e autorizados para envio. sqlVerifica= "SELECT COUNT (*) AS QTD FROM Newsletter WHERE autorizo_newsletter = 1" Set rsVerifica=conexao.Execute(sqlVerifica) If rsVerifica("QTD") = "0" Then %>
Não há e-mails disponíveis para envio.

<% Else '*** Todos os registros têm inicialmente o campo newsletter_enviado=0, conforme vão sendo enviadas as mensagens, o valor é trocado para 1, o que ocorre mais abaixo. sqlSend= "SELECT nome, email, autorizo_newsletter, newsletter_enviado, ip_usado, data_cadastro FROM Newsletter WHERE autorizo_newsletter = 1 and newsletter_enviado = 0" Set rsSend=conexao.Execute(sqlSend) '*** Se todos os registros tiverem o newsletter_enviado=1, ou seja, todas as mensagens foram enviadas, o newsletter_enviado volta para 0. If rsSend.EOF Then sqlTudo = "UPDATE Newsletter SET " sqlTudo = sqlTudo &"newsletter_enviado = 0 " sqlTudo = sqlTudo &"WHERE newsletter_enviado = 1 and autorizo_newsletter = 1" Set rsTudo=conexao.Execute(sqlTudo) Set rsTudo=nothing%>
Newsletter enviada com sucesso!
Total de e-mails enviados: <%=Session("Ntotal")%>

<% Else '*** Conta total de mensagens a serem enviadas sqlTotal="Select Count(*) AS Ntotal FROM Newsletter where autorizo_newsletter = 1 " Set rsTotal=conexao.Execute(sqlTotal) Ntotal=rsTotal("Ntotal") rsTotal.close Set rsTotal=nothing '*** Conta total de mensagens já enviadas sqlSent="Select Count(*) AS Nsent FROM Newsletter WHERE newsletter_enviado=1 and autorizo_newsletter = 1" Set rsSent=conexao.Execute(sqlSent) Nsent=rsSent("Nsent") rssent.close Set rssent=nothing '*** Conta as mensagens que ainda não foram enviadas para tratar envio das últimas mensagens sqlFalta="Select Count(*) AS Nfalta FROM Newsletter WHERE newsletter_enviado=0 and autorizo_newsletter = 1" Set rsFalta=conexao.Execute(sqlFalta) Nfalta=rsfalta("Nfalta") rsFalta.close Set rsFalta=nothing '*** Trata quantas mensagens devem ser enviadas das que sobraram '*** Se o número de registros finais for menor que 10, ocorrerá um erro. '*** A rotininha abaixo trata esse erro, ou seja, o último loop será feito até o número de registros restantes. QTDnewsletter = Int(Application("NewsletterQuantidade")) temp=0 If NfaltaPara remover o email de nosso cadastro clique aqui." Mailer.SendMail Set Mailer = Nothing '*** Troca valor do newsletter_enviado para 1 onde campo email= email enviado mail=rssend("email") sqlmuda = "UPDATE Newsletter SET " sqlmuda = sqlmuda &"newsletter_enviado = 1 " sqlmuda = sqlmuda &"WHERE email = '"&mail&"' and autorizo_newsletter = 1" Set rsmuda=conexao.Execute(sqlmuda) Set rsmuda = Nothing temp=temp+1 rssend.MoveNext Loop '***** Imagem transparente para acionar o tempo do JavaScript TMPnewsletter = Int(Application("NewsletterTempo"))*100 %> Enviando <%=temp1%> mensagens a cada <%= Application("NewsletterTempo")%> segundos...

Total: <%=Ntotal%>
Enviadas: <%=Nsent%>
<%Session("Ntotal") = Ntotal%> <%'***** Script que faz refresh da página %>
  <% rsSend.Close Set rsSend = Nothing End If rsVerifica.Close Set rsVerifica = Nothing End If End If %>