Agora segue o codigo que pega as variaveis e faz o envio dos emails:
<!--#include virtual="/conn/connect.asp"-->
<!--#include file="inc/common.asp"-->
<%
Response.Buffer = FALSE
Server.ScriptTimeout = 99999
'******************************************************************
'Pega o Caminho dos dados
'******************************************************************
Set rs = Dados_Gerais("")
lc_empresa = rs("nome")
lc_url = rs("url")
lc_email_empresa = rs("email")
rs.Close
'******************************************************************
lc_id = request("txt_id")
'******************************************************************
Set rs = Registro_Seleciona("tbl_newsletter", "id_news", lc_id)
lc_tipo = rs("tipo")
vc_assunto = "Newsletter (" & lc_empresa & ")"
tx_editor = (trim(rs("texto")))
rs.Close
pagina = int(request("pagina"))
contador = int(request("contador"))
if pagina = 1 then
contador = 0
%>
<script>
parent.formulario.document.getElementById("td_status").innerHTML = '<input type="text" name="it_enviados" class="forms" value="0" size="5"> emails enviados de <input type="text" name="it_total" class="forms" value="0" size="5">'
</script>
<%
end if
'******************************************************************
'Pega os e-mais que estao relacionados ao grupo desta newsletter
'******************************************************************
SQL = "SELECT * FROM tbl_email"
SQL = SQL & " WHERE grupo = "& lc_tipo &""
SQL = SQL & " ORDER BY id"
Set RS = conDB.Execute(SQL)
it_total = RS.RecordCount
RS.PageSize = 10 ' aqui é definido o tamanho do pacote que será enviado
RS.absolutepage = pagina
if pagina = 1 then
%>
<script>
parent.formulario.document.getElementById("it_total").value = <%=it_total%>;
</script>
<%
end if
i = 0
do while NOT RS.EOF AND i < RS.PageSize
set objCDOSYSMail = Server.CreateObject ("CDO.Message")
set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")
Set objCDOSYSMail.Configuration = objCDOSYSCon
With objCDOSYSCon
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail-fwd"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
.Fields.update
End With
With objCDOSYSMail
.From = lc_email_empresa
.To = rs("email")
.Subject = vc_assunto
.HtmlBody = tx_editor
.Send
End With
set objCDOSYSMail = nothing
set objCDOSYSCon = nothing
%>
<script>
parent.formulario.document.getElementById("it_enviados").value = '<%=i + contador%>';
</script>
<%
i = i + 1
RS.MoveNext
loop
%>
<script>
parent.formulario.document.getElementById("pagina").value = Number(parent.formulario.document.getElementById("pagina").value) + Number(1);
parent.formulario.document.getElementById("contador").value = Number(parent.formulario.document.getElementById("contador").value) + Number(<%=i%>);
</script>
<%
if RS.PageCount >= pagina then
%>
<script>
setTimeout('parent.formulario.document.frm.submit()',10000); // De 10 em 10 segundos ele vai mandar o formulario
</script>
<%
else
'==========================================================================
'Update no Status da Newsletter
'==========================================================================
lc_status = "2"
lc_data = year(now)& "/" & Month(now)& "/" & day(now)
lc_hora = Time()
'==========================================================================
'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
'==========================================================================
%>
<script>
alert('Mailing enviado com sucesso!');
</script>
<%
end if
%>
Ele não retorna erro algum mas não envia a newsletter.
Pergunta
gustavovalle
Bom dia peguei um codigo e adapitei algumas coisas para o desenvolvimento de um sistema que envia Newsletter sem limite de emails e sem TIMEOUT.
Mas alguma coisa esta errada e não consigo achar o erro.
Abaixo o codigo passo a passo.
Página que chama o envio da nesletter:
Esta página com iframe chama o formulario que enviará a newsletter sem que seje nessessário sair da página atual.
A seguir vem o form que envia as variaveis para o código de envio atraves do botao enviar:<% lc_id = request("id") %> <form id="frm" name="frm" action="news.asp" target="codigo"> <input name="txt_id" type="hidden" value="<%=lc_id%>" /> <input name="pagina" type="hidden" value="1" /> <input name="contador" type="hidden" value="1" /> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td id="td_status" class="Mensagem_erro"><input name="Enviar" type="image" src="img/bt_continuar.gif"></td> </tr> </table> </form>Agora segue o codigo que pega as variaveis e faz o envio dos emails:<!--#include virtual="/conn/connect.asp"--> <!--#include file="inc/common.asp"--> <% Response.Buffer = FALSE Server.ScriptTimeout = 99999 '****************************************************************** 'Pega o Caminho dos dados '****************************************************************** Set rs = Dados_Gerais("") lc_empresa = rs("nome") lc_url = rs("url") lc_email_empresa = rs("email") rs.Close '****************************************************************** lc_id = request("txt_id") '****************************************************************** Set rs = Registro_Seleciona("tbl_newsletter", "id_news", lc_id) lc_tipo = rs("tipo") vc_assunto = "Newsletter (" & lc_empresa & ")" tx_editor = (trim(rs("texto"))) rs.Close pagina = int(request("pagina")) contador = int(request("contador")) if pagina = 1 then contador = 0 %> <script> parent.formulario.document.getElementById("td_status").innerHTML = '<input type="text" name="it_enviados" class="forms" value="0" size="5"> emails enviados de <input type="text" name="it_total" class="forms" value="0" size="5">' </script> <% end if '****************************************************************** 'Pega os e-mais que estao relacionados ao grupo desta newsletter '****************************************************************** SQL = "SELECT * FROM tbl_email" SQL = SQL & " WHERE grupo = "& lc_tipo &"" SQL = SQL & " ORDER BY id" Set RS = conDB.Execute(SQL) it_total = RS.RecordCount RS.PageSize = 10 ' aqui é definido o tamanho do pacote que será enviado RS.absolutepage = pagina if pagina = 1 then %> <script> parent.formulario.document.getElementById("it_total").value = <%=it_total%>; </script> <% end if i = 0 do while NOT RS.EOF AND i < RS.PageSize set objCDOSYSMail = Server.CreateObject ("CDO.Message") set objCDOSYSCon = Server.CreateObject ("CDO.Configuration") Set objCDOSYSMail.Configuration = objCDOSYSCon With objCDOSYSCon .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail-fwd" .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 .Fields.update End With With objCDOSYSMail .From = lc_email_empresa .To = rs("email") .Subject = vc_assunto .HtmlBody = tx_editor .Send End With set objCDOSYSMail = nothing set objCDOSYSCon = nothing %> <script> parent.formulario.document.getElementById("it_enviados").value = '<%=i + contador%>'; </script> <% i = i + 1 RS.MoveNext loop %> <script> parent.formulario.document.getElementById("pagina").value = Number(parent.formulario.document.getElementById("pagina").value) + Number(1); parent.formulario.document.getElementById("contador").value = Number(parent.formulario.document.getElementById("contador").value) + Number(<%=i%>); </script> <% if RS.PageCount >= pagina then %> <script> setTimeout('parent.formulario.document.frm.submit()',10000); // De 10 em 10 segundos ele vai mandar o formulario </script> <% else '========================================================================== 'Update no Status da Newsletter '========================================================================== lc_status = "2" lc_data = year(now)& "/" & Month(now)& "/" & day(now) lc_hora = Time() '========================================================================== '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 '========================================================================== %> <script> alert('Mailing enviado com sucesso!'); </script> <% end if %>Ele não retorna erro algum mas não envia a newsletter.
Obrigado para quem poder me ajudar.
Link para o comentário
Compartilhar em outros sites
2 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.