Ir para conteúdo
Fórum Script Brasil
  • 0

Newsletter Sem Timeout


gustavovalle

Pergunta

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.

<iframe name="formulario" src="news_form.asp?id=<%=lc_id%>" width="581" height="64" scrolling="no" frameborder="0"></iframe>
<iframe name="codigo" width="1" height="1"></iframe>
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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...