Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Invio email va in timeOut

    Ciao, ho uno strano problema con questo codice per inviare mail scaglionate, 5 x volta; nella tabella email sono contenuti 40 indirizzi, lo script quando arriva all'indirizzo con ID numero 36 va in timeOut, anche se l'email è regolarmente inviata a tutti e 40 gli indirizzi di posta previsti in tabella.

    Da che potrebbe dipendere ?

    codice:
    session.LCID = 1040
    server.scriptTimeout = 10000
    
       Function Sleep(sec)
    	   Dim Start:Start = Timer:While (Timer-Start<sec):Wend
       End function
    
       xSQL = " SELECT * FROM "
       xSQL = xSQL & " email "
       xSQL = xSQL & " ORDER BY "
       xSQL = xSQL & " Email ASC "  
       
       Set rec = server.CreateObject("ADODB.Recordset") 
       rec.Open xSQL, Cn
    
       if not rec.eof then    
    
       Const cdoSendUsingMethod        = _
    	   "http://schemas.microsoft.com/cdo/configuration/sendusing"
       Const cdoSendUsingPort          = 2
       Const cdoSMTPServer             = _
    	   "http://schemas.microsoft.com/cdo/configuration/smtpserver"
       Const cdoSMTPServerPort         = _
    	   "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
       Const cdoSMTPConnectionTimeout  = _
    	"http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
    
    %>
    
    
    
    <%
    
    '#### CREO LA MAIL
    
       rec.MoveFirst() 
         
       Conta = 0
       ListaDestinatari = ""
          
       Do Until rec.eof
       Do Until (Conta > 5) OR (rec.eof = true)
    
       ListaDestinatari = ListaDestinatari & rec("email") & "; "
       Conta = Conta + 1
    
       rec.MoveNext() 
       Loop
    	
    Set objConfig = Server.CreateObject("CDO.Configuration")
    Set Fields = objConfig.Fields
    
    With Fields
    	.Item(cdoSendUsingMethod)       = cdoSendUsingPort
    	.Item(cdoSMTPServer)            = "XXXXXXX"
    	.Item(cdoSMTPServerPort)        = 25
    	.Item(cdoSMTPConnectionTimeout) = 10
    	.Update
    End With
    
    Set objMessage = Server.CreateObject("CDO.Message")
    Set objMessage.Configuration = objConfig
    
    With objMessage
        .From    = "io@google.it"
        .To       = ListaDestinatari                 
        .Subject  = "Prova."
        .HtmlBody = messaggio
        .Send	
    End With
    
    Response.Write("Attendo 3 secondi...")
    Response.Flush
    Sleep 3
    Response.Write("OK ===> ")
    
    response.write "Email inviata a ===> " 
    response.write "" & ListaDestinatari & ""
    response.write "
    
    "
    
    Conta = 0
    ListaDestinatari = "" 
    
    Loop
    end if 
    
        Set Fields = Nothing
        Set objMessage = Nothing
        Set objConfig = Nothing
    
        rec.Close()
        Set rec = Nothing
    
        cn.Close()
        Set cn = Nothing
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    170
    Perchè non metti gli indirizzi tutti su Bcc???

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Perchè sono email interne ed i destinatari devono essere "trasparenti"....
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  4. #4
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Problemi sul server , un bel riavvio ed adesso è tutto OK... lo script funziona correttamente ed è quindi possibile utilizzarlo a chi interessa, naturalmente....
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Cmq tu apri gli oggetti dentro ad un ciclo e li chiudi fuori...

    Roby

  6. #6
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da Roby_72
    Cmq tu apri gli oggetti dentro ad un ciclo e li chiudi fuori...

    Roby
    Si è vero ho già corretto:

    codice:
    session.LCID = 1040
    server.scriptTimeout = 10000
    
       Function Sleep(sec)
    	   Dim Start:Start = Timer:While (Timer-Start<sec):Wend
       End function
    
       xSQL = " SELECT * FROM "
       xSQL = xSQL & " email "
       xSQL = xSQL & " ORDER BY "
       xSQL = xSQL & " Email ASC "  
       
       Set rec = server.CreateObject("ADODB.Recordset") 
       rec.Open xSQL, Cn
    
       if not rec.eof then    
    
       Const cdoSendUsingMethod        = _
    	   "http://schemas.microsoft.com/cdo/configuration/sendusing"
       Const cdoSendUsingPort          = 2
       Const cdoSMTPServer             = _
    	   "http://schemas.microsoft.com/cdo/configuration/smtpserver"
       Const cdoSMTPServerPort         = _
    	   "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
       Const cdoSMTPConnectionTimeout  = _
    	"http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
    
    %>
    
    
    
    <%
    
    '#### CREO LA MAIL
    
       rec.MoveFirst() 
         
       Conta = 0
       ListaDestinatari = ""
          
       Do Until rec.eof
       Do Until (Conta > 5) OR (rec.eof = true)
    
       ListaDestinatari = ListaDestinatari & rec("email") & "; "
       Conta = Conta + 1
    
       rec.MoveNext() 
       Loop
    	
    Set objConfig = Server.CreateObject("CDO.Configuration")
    Set Fields = objConfig.Fields
    
    With Fields
    	.Item(cdoSendUsingMethod)       = cdoSendUsingPort
    	.Item(cdoSMTPServer)            = "XXXXXXX"
    	.Item(cdoSMTPServerPort)        = 25
    	.Item(cdoSMTPConnectionTimeout) = 10
    	.Update
    End With
    
    Set objMessage = Server.CreateObject("CDO.Message")
    Set objMessage.Configuration = objConfig
    
    With objMessage
        .From    = "io@google.it"
        .To       = ListaDestinatari                 
        .Subject  = "Prova."
        .HtmlBody = messaggio
        .Send	
    End With
    
    Response.Write("Attendo 3 secondi...")
    Response.Flush
    Sleep 3
    Response.Write("OK ===> ")
    
    response.write "Email inviata a ===> " 
    response.write "" & ListaDestinatari & ""
    response.write "
    
    "
    
    Conta = 0
    ListaDestinatari = "" 
    
        Set Fields = Nothing
        Set objMessage = Nothing
        Set objConfig = Nothing
    
    Loop
    end if 
    
        rec.Close()
        Set rec = Nothing
    
        cn.Close()
        Set cn = Nothing
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

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 © 2025 vBulletin Solutions, Inc. All rights reserved.