Bom dia, desenvolvi uma newsletter que evita o bloqueio do servidor que esta hospedado e evite o famoso timeout, mas o problema é que ela esta fazendo o reload so uma vez, ou seja ela envia para os 10 primeiros emails, depois para mais 10 emails e finaliza, sendo que no cadastro possui 350 emails.
Coloquei um loop para 10 emails. Se alguém souber onde estou errando por favor me avise.
Obrigado
If Request.QueryString("pagina") = "" Then
pagina = 1
Else
pagina = Request.QueryString("pagina")
End if
Set rs = Registro_Seleciona("tbl_newsletter", "id_news", lc_id)
lc_tipo = rs("tipo")
lc_imagem = rs("imagem")
'lc_texto = rs("texto")
rs.Close
SQL = "SELECT * FROM tbl_email"
SQL = SQL & " WHERE grupo = "& lc_tipo &""
SQL = SQL & " ORDER BY id"
Set rs = conDB.Execute(SQL)
const registros = 10
rs.PageSize = 10
rs.CacheSize = 10
rs.AbsolutePage = pagina
totpaginas = rs.PageCount
totregistros = rs.RecordCount
i = 1
While NOT rs.EOF AND Not i > registros
lc_email = rs("email")
'lc_nome = rs("nome")
'******************************************************************
'MONTA A NEWSLETTER
'******************************************************************
HTML = HTML & "<html>"
HTML = HTML & "<head>"
HTML = HTML & "<title>"
HTML = HTML & lc_empresa
HTML = HTML & "</title>"
HTML = HTML & "</head>"
HTML = HTML & "<body bgcolor=#FFFFFF>"
HTML = HTML & "<table width=100% border=0 cellspacing=0 cellpadding=0>"
HTML = HTML & "<tr>"
HTML = HTML & "<td align=center valign=middle>"
If lc_imagem <> "" Then
HTML = HTML & "<img src="
HTML = HTML & lc_url
HTML = HTML & "/newsletter/pictures/"
HTML = HTML & lc_imagem
HTML = HTML & " border=0>"
End If
HTML = HTML & "</td>"
HTML = HTML & "</tr>"
HTML = HTML & "</table>"
HTML = HTML & "</body>"
HTML = HTML & "</html>"
'******************************************************************
'ENVIA PARA O E-MAIL
'******************************************************************
'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") = "localhost"
'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 = lc_email_empresa
'e-mail do destinatário
objCDOSYSMail.To = lc_email
'assunto da mensagem
objCDOSYSMail.Subject = "Newsletter (" & lc_empresa & ")"
objCDOSYSMail.HtmlBody = HTML
'para envio da mensagem no formato html altere o TextBody para HtmlBody
'objCDOSYSMail.HtmlBody = "Teste do componente CDOSYS"
'objCDOSYSMail.fields.update
'envia o e-mail
x = objCDOSYSMail.Send
If Not x = true Then
Session("good") = Session("good") + 1
Else
Session("bad") = Session("bad") + 1
motivo = ""
End If
i = i + 1
'destrói os objetos
Set objCDOSYSMail = Nothing
HTML = ""
rs.MoveNext
Wend
If Not (pagina > totpaginas) Then
Response.AddHeader "Refresh", "14;URL=newsletter.asp?acao=funcao&action=ENVIAR&txt_id="& lc_id &"&pagina="& pagina + 1
Response.Write("<strong><font face=verdana color=red>10 e-mails enviados.<BR>")
Response.Write("Aguarde, preparando script para enviar mais 10 e-mails...</font></strong>")
Else
'Altera o status da Newsletter para enviado
SQL1 = "UPDATE tbl_newsletter SET data = '"& lc_data &"' , hora = '" & lc_hora & "' , status = '"& lc_status &"' WHERE id_news = " & lc_id & ""
set rsquery = conDB.Execute(SQL1)
set rsquery = nothing
Response.Write("<strong><font face=verdana color=red>Todos os e-mails enviados.</font></strong><BR><BR>")
Response.Write("<font face=verdana color=blue><b>Estatísticas</b></font><BR>=============================<BR>")
Response.Write("<font face=verdana color=black>E-mails enviados com sucesso: <b>"&Session("good")&"</b><BR>")
Response.Write("E-mails enviados sem sucesso: <b>"&Session("bad")&"</b><BR>")
'Response.Write("Erro: <b>"&motivo&"</b><BR>--<BR>")
Response.Write("Total de e-mails no banco de dados: <b>"&totregistros&"</b></font>")
Session("good") = 0
Session("bad") = 0
Set rs = Nothing
Set objCDOSYSCon = Nothing
End If
Pergunta
gustavovalle
Bom dia, desenvolvi uma newsletter que evita o bloqueio do servidor que esta hospedado e evite o famoso timeout, mas o problema é que ela esta fazendo o reload so uma vez, ou seja ela envia para os 10 primeiros emails, depois para mais 10 emails e finaliza, sendo que no cadastro possui 350 emails.
Coloquei um loop para 10 emails. Se alguém souber onde estou errando por favor me avise.
Obrigado
Link para o comentário
Compartilhar em outros sites
5 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.