Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    invio newsletter con cdosys

    Ciao a tutti,
    ho fatto un modulo per l'invio di newsletter con cdosys ma ho un problema che non riesco a risolvere: dopo un numero variabile (a volte 200/300, a volte anche 2000/3000) di invii qualcosa si blocca e non parte più nulla.
    Il sistema è sviluppato così:
    invio le mail una per una , poi ogni 50 invii faccio una pausa e ricarico la pagina, quindi invio le successive 50.

    ecco il codice:

    '------------------------------------------

    blocco = Request.QueryString("blocco")

    Dim rsutenti
    Set rsutenti = Server.CreateObject("ADODB.Recordset")
    rsutenti.Open "SELECT * FROM Utenti WHERE Conferma = 1", dbc, 3, 3

    if blocco = "" then blocco = 0
    send = (blocco*50)

    rsutenti.move(send)
    bloccosend = 0

    Do While not rsutenti.eof
    on error resume next
    Set objMail = Server.CreateObject("CDO.Message")
    Set objConfig = Server.createObject("CDO.Configuration")
    With objConfig
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "serverdiposta"
    .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") = 300
    .Fields.update
    End With
    Set objMail.Configuration = objConfig
    objMail.From = "newsletter@miosito.it"
    objMail.To = rsutenti("UtentiMail")
    objMail.Subject = oggettonewsletter
    objMail.HTMLBody = newsletter
    objMail.Send()
    Set objMail = nothing
    bloccosend = bloccosend + 1
    if (bloccosend) = 50 then
    dbc.close
    set dbc = nothing
    For i = 1 to 140000
    Response.write "wait... "
    Next
    Response.Redirect("send_nl.asp?blocco=" & blocco + 1)
    end if
    rsutenti.movenext
    Loop

    Response.Redirect("newsletterinviata.asp")

    '------------------------------------------

    a volte mi tocca addiritura riavviare i servizi internet sul server perchè non si riprende nemmeno chiudendo il browser... come posso fare per risolvere la questione?
    Grazie...
    Chi Non RisiKa noN RosiKa

  2. #2
    Chi Non RisiKa noN RosiKa

  3. #3
    Chi Non RisiKa noN RosiKa

  4. #4
    Togli
    on error resume next
    e quindi vedi cosa succede.

  5. #5
    on error resume next l'ho aggiunto in quanto senza di questo se nel database era registrato per qualche motivo un indirizzo e-mail che non è un indirizzo e-mail facendo objMail.Send() il sistema andava in errore, così invece dovrebbe passare all'indirizzo successivo.
    Non credo che il motivo del blocco possa essere questo in quanto il momento in cui si blocca l'invio non è sempre allo stesso punto ma ogni volta è diverso, a volte ne partono 2/300 poi si blocca, altre volte va liscio fino a 2/3000 e poi si blocca. Attualmente in database ho circa 8500 iscitti...
    Chi Non RisiKa noN RosiKa

  6. #6
    codice:
    blocco = Request.QueryString("blocco")
    
    Dim rsutenti
    Set rsutenti = Server.CreateObject("ADODB.Recordset")
    rsutenti.Open "SELECT * FROM Utenti WHERE Conferma = 1", dbc, 3, 3
    
    if blocco = "" then blocco = 0
    send = (blocco*50)
    
    rsutenti.move(send)
    bloccosend = 0
    
    Set objMail = Server.CreateObject("CDO.Message")
    Set objConfig = Server.createObject("CDO.Configuration") 
    With objConfig 
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "serverdiposta"
    .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") = 300
    .Fields.update 
    End With 
    Set objMail.Configuration = objConfig
    
    
    Do While not rsutenti.eof
    on error resume next
    objMail.From = "newsletter@miosito.it"
    objMail.To = rsutenti("UtentiMail")
    objMail.Subject = oggettonewsletter
    objMail.HTMLBody = newsletter
    objMail.Send()
    bloccosend = bloccosend + 1
    if (bloccosend) = 50 then
    dbc.close
    set dbc = nothing
    ' For i = 1 to 140000
    ' Response.write "wait... "
    ' Next
    Response.Redirect("send_nl.asp?blocco=" & blocco + 1)
    end if
    rsutenti.movenext
    Loop
    
    Set objMail = nothing
    
    
    Response.Redirect("newsletterinviata.asp")

  7. #7
    forse va un pò meglio di prima ma comunque ho fatto due test di invio, il primo si è fermato a 999 e il secondo a 877...
    Chi Non RisiKa noN RosiKa

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.