Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di cms9651
    Registrato dal
    Mar 2010
    Messaggi
    107

    Invio a blocchi di email

    Ciao a tutti.
    Spero in un vostro aiuto.

    Questo script funziona correttamente l'unica cosa che non va è il conteggio delle email inviate agli iscritti ad una mailing list.

    Il conteggio segnala sempre 625 ad ogni cambio di pagina di invio a blocchi che avviene ogni 30 secondi tramite la funzione JSRedirect.

    Sapete dirmi dove sbaglio?
    Perchè il contatore di invio mail non si incrementa e rimane sempre fisso?

    Grazie
    codice:
    Function JSRedirect(Byval secondi)
    	With Response
    		.Write("<script language=""JavaScript"">" & vbCrLf) 
    		.Write("<!--" & vbCrLf) 
    		.Write("function redirect() {" & vbCrLf) 
    		.Write("window.location = '" & url & "';" & vbCrLf) 
    		.Write("}" & vbCrLf) 
    		.Write("timer = setTimeout('redirect()', '" & (secondi * 1500) & "');" & vbCrLf) 
    		.Write("-->" & vbCrLf) 
    		.Write("</script>" & vbCrLf) 
    	End With
    End Function
    
    SQL = " SELECT * FROM tbl_ml "
    SQL = SQL & " WHERE InvioEmail = 0 "
    SQL = SQL & " ORDER BY ID DESC "
    SQL = SQL & " LIMIT 25 "
    
    Set objRS = Server.CreateObject("ADODB.Recordset")
    objRS.Open SQL, objconn
    
    if objRS.eof then
       response.redirect("azzera.asp")
       
    else
    
    Cont = 0
    
    while not objRS.eof 
    
    //script per invio messaggi mailing list.....
    
    str_update = "UPDATE tbl_ml SET "
    str_update = str_update & " InvioEmail = 1 "
    str_update = str_update & " WHERE id = " & objRS("Id")
    objconn.execute (str_update)
    
    Cont = Cont + 25
    
    objRS.movenext
    wend
    
    response.write (JSRedirect(30))
    response.write "Email inviate: " & Cont & " "
     
    end if
    
    objRS.Close
    Set objRS = Nothing

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Secondo me devi decurtarli -25 ad ogni ciclo fino a che non arrivi a zero, poi io non userei js per ricaricare la pagina ma asp mettendo ad inizio pagina Response.AddHeader "Refresh", "30" //30 sono i secondi// e toglierei la funzione JSRedirect
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di cms9651
    Registrato dal
    Mar 2010
    Messaggi
    107
    Grazie, ma:

    Cont = Cont -25

    Risultato:
    Email inviate: -625


  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Codice PHP:
    Response.AddHeader "Refresh""30"

    SQL " SELECT *, COUNT(Id) AS contaID FROM tbl_ml "
    SQL SQL " WHERE InvioEmail = 0 "
    SQL SQL " ORDER BY ID DESC "
    SQL SQL " LIMIT 25 "

    Set objRS Server.CreateObject("ADODB.Recordset")
    objRS.Open SQLobjconn

    if objRS.eof then
       response
    .redirect("azzera.asp")
       
    else

    Cont objRS("contaID")

    while 
    not objRS.eof 

    //script per invio messaggi mailing list.....

    str_update "UPDATE tbl_ml SET "
    str_update str_update " InvioEmail = 1 "
    str_update str_update " WHERE id = " objRS("Id")
    objconn.execute (str_update)

    Cont = (Cont 25)

    objRS.movenext
    wend

    response
    .write "Email restanti: " Cont " "
     
    end if

    objRS.Close
    Set objRS 
    Nothing 
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di cms9651
    Registrato dal
    Mar 2010
    Messaggi
    107
    Grazie, ma con la tua ultima versione mi invia un email ogni 30 secondi e non più a blocchi da 25...

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Ciao,

    devi contare il numero dei campi InvioEmail che hanno valore 1

    dopo objconn.execute (str_update)

    codice:
    sql1 = "SELECT COUNT(*) AS inviate FROM tbl_ml WHERE InvioEmail = 1"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql1, objconn, 3, 3
    On Error Resume Next
    rs.MoveFirst
    Cont=rs.Fields("inviate")
    rs.Close
    Email inviate 25

    Email inviate 50

    Email inviate 75 ecc...



    Massimo.

  7. #7
    Utente di HTML.it L'avatar di cms9651
    Registrato dal
    Mar 2010
    Messaggi
    107
    Originariamente inviato da Massimo61
    Ciao,

    devi contare il numero dei campi InvioEmail che hanno valore 1

    dopo objconn.execute (str_update)

    codice:
    sql1 = "SELECT COUNT(*) AS inviate FROM tbl_ml WHERE InvioEmail = 1"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql1, objconn, 3, 3
    On Error Resume Next
    rs.MoveFirst
    Cont=rs.Fields("inviate")
    rs.Close
    Email inviate 25

    Email inviate 50

    Email inviate 75 ecc...



    Massimo.
    Grazie, adesso funziona correttamente.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.