[Risolto] Invio mail a blocchi

djjunior

Utente Attivo
24 Lug 2004
99
1
8
Salve,
prendendo spunti da un post su Mr Webmaster, ho modificato questo script per le mie esigenze.
Per fare un test ho impostato l'invio di 5 mail x volta su 20, ma dovrà gestirne di più.
Solo che invece di mandare 5 mail per volta , mi manda le 20 mail tutte insieme, dove sbaglio?
Premetto, da come si evince dallo script, che ogni mail ha un allegato specifico.
Potete aiutarmi? Grazie
G.
Codice:
<%@LANGUAGE = VBScript%>
<%
    Dim periodos, pag, cn, rs, quante, tot, i, email

    periodos = request.form("periodo")

    pag = Request.QueryString("pag")
    If IsNumeric(pag) = False Or pag < 1 Then pag = 1

If periodos <> "" Then
Session("periodos") = periodos
Else
Response.End
End If

dim fs,fo,x,extfile,folder
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("d:\inetpub\webs\miositoit\public\pdf\" & periodos & "\")
set file3 = fo.files

for each x in file3
extfile = left(split(x.Name,".pdf")(0),14)


    Set cn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")
    cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath("../../mdb-database/prova.mdb")

    ' Lancio la query
    rs.Open "SELECT * FROM utenti WHERE codice_cliente = '" & extfile & "' AND attivo = 'SI'", cn, 1
    
if not rs.eof then   

    ' Predispongo la paginazione
    quante = 5
    rs.CacheSize = quante
    rs.PageSize = quante
    rs.AbsolutePage = pag
    tot = CInt(rs.PageCount)
    i = 0


    Do While Not rs.EOF

    
nome = rs.fields("Nome")
cognome = rs.fields("Cognome")
codice_cliente = rs.fields("codice_cliente")
emails = rs.fields("email")

Dim iMsg
Dim iConf
Dim Flds
set iMsg = CreateObject("CDO.Message")
set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields

Flds("http://schemas.microsoft.com/cdo/configuration/urlgetlatestversion") = True

Flds("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.miosito.it" 

Flds("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

Flds("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

Flds("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 240

Flds.Update

folder = request.form("periodo")

  bim = MID(folder,17)
  bim = Replace(bim, "_" , " ")  
  anno = MID(folder,1,4)	

nomefile = x.Name


With iMsg
Set .Configuration = iConf
.To = emails
.From = "MIAAZIENDA<[email protected]>"
.Subject = "Cod cliente: " & codice_cliente &""
.TextBody = "documento in allegato"
.AddAttachment server.mappath("../pdf/" & request.form("periodo") & "/" & nomefile & "") 
.Send
End With
            
        i = i + 1
        If i = quante Then Exit Do
        rs.MoveNext
    Loop
    
       end if
next



    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing



    If CInt(pag) < CInt(tot) Then
        Response.redirect "inviodocpdf.asp?pag=" & CInt(pag) + 1
    End If
    

    Response.write ("Pagina corrente: " & pag)
%>
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Ciao,
sinceramente non ho mai avuto l'esigenza di inviare email in blocchi piuttosto che tutti insieme, comunque, quando dici di inviare l'email ad un numero di 5 destinatari per volta, vuol dire che lo script deve:
. estrapolare 5 destinatari distinti ed inviare 5 email distinte e poi arrestarsi?
. estrapolare 5 destinatari secondo un criterio ed inviare un allegato in base a quel criterio?

Se fossi in te userei la seguente logica:
. creo un ciclo di 5 record
. ad ogni record estratto aggiorno un apposito campo nel db che metta ad 1 la condizione (così lo script al prossimo avvio li scarta)

una volta creato uno script del genere, inserire la funzione invio email con allegato è una sciocchezza...

Gli allegati, diversi per ogni destinatario, sono indicati in un apposito campo nel database?
 

djjunior

Utente Attivo
24 Lug 2004
99
1
8
Grazie per la risposta, ma 5 destinatari, come detto, era di esempio, sarebbero minimo 30 per volta proprio per non appesantire il server smtp.
Può farmi un esempio del sistema che pensa lei?
Io comunque avevo pensato, ma non saprei come effettivamente fare, la quale chiedo aiuto a Lei, ho già una pagina con una tabella con la lista di utenti estrapolati da db riferiti al PERIODO recuperato tramite request.form da pagina precedente, ecco ora vorrei che inviasse la mail con allegato (allegato da recuperare da una cartella sul server no da db, ma questo sistema già lo ho) una per volta per ogni utenti con relativo allegato, fino a completamento della lista spuntando l'avvenuto invio tramite l'aiuto del db, inserendo se necessita di un campo da chekkare su db.
Capisco che è tanta roba, comunque diciamo che a me serve inviare a blocchi le mail con allegato, puo aiutarmi?
Grazie
G.
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Dai un occhiata a questo link, ti potrebbe andare un idea del genere?

http://www.caprioli.info/fitness/script/list.asp

Codice esempio da personalizzare:
Codice:
<%

' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
' @@@@ CONNESSIONE AL DATA BASE
' @@@@ Versione ACCESS

Dim strPath

	[COLOR="#FF0000"]strPath = "D:\inetpub\webs\caprioliinfo\fitness\mdb-database\data-base.mdb"
	strConnect = "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & strPath[/COLOR]

' @@@@ Fine
' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


Select Case Request.QueryString("dir")
  Case ""
    v_pagina_corrente = 1
  Case "next"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) + 1
  Case "prev"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) - 1
End Select 


   		adOpenKeyset = 1
		v_record_pagina = 8 'Numero di record da visualizzare su ogni pagina


	Set conn = Server.CreateObject("ADODB.Connection")
	Set rst = Server.CreateObject("ADODB.Recordset")
		conn.open  strConnect
		criterio = [COLOR="#FF0000"]"SELECT * FROM DB_SETUP ORDER BY id ASC"[/COLOR]
		rst.Open criterio, conn, adOpenKeyset

'Se la query ritorna dati, visualizzo la pagina
	If Not (rst.bof and rst.eof) then 

		rst.PageSize = cint(v_record_pagina)
		rst.AbsolutePage = Cdbl(v_pagina_corrente)

'Ciclo sui record della pagina
	For x = 1 To rst.PageSize

'Esco alla fine della pagina, se è l'ultima e contiene meno record delle altre
	If rst.Eof then exit for 

		id = (rst.Fields.Item("id").Value)

%>
<%=id%><br />
---------------------<br />
Qui inserisco il codice invio email<br />
al destinatario estrapolato dal DB<br />
---------------------<br />
<% 

    rst.MoveNext 

    Next 

'Qui semplicemente creo la barra di navigazione.
        If rst.EOF and rst.BOF then 
			%>&nbsp;<%
			Else
			If Cdbl(v_pagina_corrente) > 1 Then 
			%>&nbsp;<% 
			Else
			%>&nbsp;<% 
			End If
        	If Cdbl(v_pagina_corrente) < rst.PageCount Then 
			%><a href='list.asp?dir=next&pag=<%= v_pagina_corrente %>'><font size='2' face='Verdana'>Avanti</font></a><%
			Else 
			%><a href='list.asp'><font size='2' face='Verdana'>Torna all'inizio</font></a><% 
			End If	
        End If
' fine barra di navigazione

	Else
'La query non ritorna dati
	%><p>Nessun record da visualizzare.</p><%
	End If

' chiudo e distruggo tutto
		rst.Close
		conn.Close
	Set rst = nothing
	Set conn = nothing

%>

Buon divertimento...:byebye:
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
nel 2006, nella stessa situazione, mettevo in "pausa"

MsgBox "TEST 1"
WScript.Sleep 10000
MsgBox "TEST 2"

nell'esempio 10 secondi
ciao
Marino
 

djjunior

Utente Attivo
24 Lug 2004
99
1
8
Andrebbe benissimo, solo che non riesco ad adattarlo alle mie esigenze, spiego meglio:
Come si può vedere dal mio primo post io recupero il codice cliente da un'istruzione for each, in pratica in base al periodo:
Codice:
periodo = request.form("periodo")

dim fs,fo,x,extfile,folder
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("d:\inetpub\webs\miositoit\public\pdf\" & periodo & "\")
set file3 = fo.files

for each x in file3
extfile = left(split(x.Name,".pdf")(0),14)
....
next
In base al periodo indicato si cercano i file pdf corrispondenti e dal nome del file pdf, estrapolo il codice cliente del periodo.
Ecco, come faccio ad implementare la mia suddetta istruzione nello script che mi ha segnalato Lei?
Cioè entrare a far parte del ciclo dell'invio?
Mi manca questo passaggio, di seguito riposto Vs. script con l'inserimento dellla mia istruzione:
Codice:
<%

' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
' @@@@ CONNESSIONE AL DATA BASE
' @@@@ Versione ACCESS

Dim strPath

	strPath = "D:\inetpub\webs\miosito\mdb-database\prova.mdb"
	strConnect = "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & strPath

' @@@@ Fine
' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

periodos = "allegati"

dim fs,fo,x,extfile,folder
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("d:\inetpub\webs\miositoit\public\test\" & periodos & "\")
set file3 = fo.files

for each x in file3
extfile = left(split(x.Name,".pdf")(0),14)


nomefile = x.Name


    Next 

Select Case Request.QueryString("dir")
  Case ""
    v_pagina_corrente = 1
  Case "next"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) + 1
  Case "prev"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) - 1
End Select 

   		adOpenKeyset = 1
		v_record_pagina = 8 'Numero di record da visualizzare su ogni pagina


	Set conn = Server.CreateObject("ADODB.Connection")
	Set rst = Server.CreateObject("ADODB.Recordset")
		conn.open  strConnect
		criterio = "SELECT * FROM user WHERE codice_cliente = '" & extfile & "' AND attivo = 'SI'"
		rst.Open criterio, conn, adOpenKeyset


'Se la query ritorna dati, visualizzo la pagina
	If Not (rst.bof and rst.eof) then 

		rst.PageSize = cint(v_record_pagina)
		rst.AbsolutePage = Cdbl(v_pagina_corrente)

'Ciclo sui record della pagina
	For x = 1 To rst.PageSize

'Esco alla fine della pagina, se è l'ultima e contiene meno record delle altre
	If rst.Eof then exit for 

		id = (rst.Fields.Item("id").Value)
		nome = rst.fields("Nome")
cognome = rst.fields("Cognome")
codice_cliente = rst.fields("codice_cliente")
emails = rst.fields("email")

		
		
%>
<%=id%><br />
---------------------<br />
Qui inserisco il codice invio email<br />
esempio per vedere se estrapola email:<%=rst.fields("email")%><br />
e il nome del file corrispondente<%=nomefile%><br />
prima di impostare mail<br />
---------------------<br />
<% 

    rst.MoveNext 


next

'Qui semplicemente creo la barra di navigazione.
        If rst.EOF and rst.BOF then 
			%>&nbsp;<%
			Else
			If Cdbl(v_pagina_corrente) > 1 Then 
			%>&nbsp;<% 
			Else
			%>&nbsp;<% 
			End If
        	If Cdbl(v_pagina_corrente) < rst.PageCount Then 
			%><a href='list.asp?dir=next&pag=<%= v_pagina_corrente %>'><font size='2' face='Verdana'>Avanti</font></a><%
			Else 
			%><a href='list.asp'><font size='2' face='Verdana'>Torna all'inizio</font></a><% 
			End If	
        End If
' fine barra di navigazione

	Else
'La query non ritorna dati
	%><p>Nessun record da visualizzare.</p><%
	End If

' chiudo e distruggo tutto

		rst.Close
		conn.Close
	Set rst = nothing
	Set conn = nothing

%>
Grazie 1000 per il Vs. aiuto.
G.
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Prova a sostituire il tuo codice:
Codice:
periodo = request.form("periodo")

dim fs,fo,x,extfile,folder
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("d:\inetpub\webs\miositoit\public\pdf\" & periodo & "\")
set file3 = fo.files

for each x in file3
extfile = left(split(x.Name,".pdf")(0),14)
....
next

con questo:

Codice:
Dim objFso, objFolder, objFiles, strFolder, strFile 
    periodo = request.form("periodo")

Set objFso = Server.CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFso.GetFolder("d:\inetpub\webs\miositoit\public\pdf\" & periodo & "\") 
Set objFiles = objFolder.Files 

For Each strFile in objFiles
extfile = extfile&" "&(strFile.name) 
Next 

Set objFso = Nothing 
Set objFolder = Nothing 
Set objFiles = Nothing

Aggiunti questo rigo allo script iniziale:

Codice:
<%=id%><br />
Allegato: <%=extfile%><br />
---------------------<br />
Qui inserisco il codice invio email<br />
al destinatario estrapolato dal DB<br />
---------------------<br />

e visualizzarai i file contenetuti nella cartella da te ricercata in base il nome/data:
http://www.caprioli.info/fitness/script/list.asp

Buon lavoro
 

djjunior

Utente Attivo
24 Lug 2004
99
1
8
Grazie Paolo,
sicuramente non ho spiegato bene la mia esigenza.
La parte iniziare del mio script non deve visualizzare o prendere un allegato qualunque o altro.
In pratica tramite il "periodo = request.form("periodo")" si scorrono nella cartella relativa al periodo tutti i file, poi si estrapola tramite:
Codice:
extfile = left(split(x.Name,".pdf")(0),14) il codice cliente,
perchè i file sono tipo:

00400000002300_0927_Lotto_00006_RICEVUTA_012721.pdf

e la parte iniziale, i primi 14 numeri sono il codice cliente che si chiama extfile.

Ecco, poi tramite la query:
Codice:
criterio = "SELECT * FROM user WHERE codice_cliente = '" & extfile & "' "
Se il codice cliente estrapolato è presente nel db manda la mail con relativo allegato.
Purtroppo non so come paginare i risultati del mio script:
Codice:
periodo = request.form("periodo")

dim fs,fo,x,extfile,folder
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("d:\inetpub\webs\miositoit\public\pdf\" & periodo & "\")
set file3 = fo.files

for each x in file3
extfile = left(split(x.Name,".pdf")(0),14)
....
next

A questo indirizzo:
www.studiofotografare.it/public/test/list.asp

Ho messo lo script con il mio inserimento, ma come vedi mi stampa solo un risultato invece di stamparmi tutti quelli con il criterio della query, dovrebbero essere una 20 per il test.
Codice:
<%

' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
' @@@@ CONNESSIONE AL DATA BASE
' @@@@ Versione ACCESS

Dim strPath

	strPath = "D:\inetpub\webs\miosito\mdb-database\miodb.mdb"
	strConnect = "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & strPath

' @@@@ Fine
' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


Select Case Request.QueryString("dir")
  Case ""
    v_pagina_corrente = 1
  Case "next"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) + 1
  Case "prev"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) - 1
End Select 

   		adOpenKeyset = 1
		v_record_pagina = 15 'Numero di record da visualizzare su ogni pagina

periodos = "allegati"

dim fs,fo,x,extfile,folder
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("d:\inetpub\webs\miositoit\file\" & periodos & "\")
set file3 = fo.files

for each x in file3
extfile = left(split(x.Name,".pdf")(0),14)

nomefile = x.Name
next
	Set conn = Server.CreateObject("ADODB.Connection")
	Set rst = Server.CreateObject("ADODB.Recordset")
		conn.open  strConnect
		criterio = "SELECT * FROM user WHERE codice_cliente = '" & extfile & "' AND attivo = 'SI'"
		rst.Open criterio, conn, adOpenKeyset


'Se la query ritorna dati, visualizzo la pagina
	If Not (rst.bof and rst.eof) then 

		rst.PageSize = cint(v_record_pagina)
		rst.AbsolutePage = Cdbl(v_pagina_corrente)

'Ciclo sui record della pagina
	For x = 1 To rst.PageSize

'Esco alla fine della pagina, se è l'ultima e contiene meno record delle altre
	If rst.Eof then exit for 


%>

PARTE MAIL:<br />
Nome:<%=rst.fields("nome")%><br />
Cognome: <%=rst.fields("cognome")%><br />
Cod. Cliente: <%=rst.fields("codice_cliente")%><br />
E-mail:<%=rst.fields("email")%><br />
Nomefile da allegare: <%=nomefile%><br />
---------------------<br />
<% 
    rst.MoveNext 
    
next

'Qui semplicemente creo la barra di navigazione.
        If rst.EOF and rst.BOF then 
			%>&nbsp;<%
			Else
			cont=1
			If Cdbl(v_pagina_corrente) > 1 Then 
			value= (Cdbl(v_pagina_corrente)*15)+cont
			%>&nbsp;<% 
			Else
			%>&nbsp;<% 
			End If
        	If Cdbl(v_pagina_corrente) < rst.PageCount Then 
			%><a href='list.asp?dir=next&pag=<%= v_pagina_corrente %>'><font size='2' face='Verdana'>Avanti</font></a><%
			Else 
			%><a href='list.asp'><font size='2' face='Verdana'>Torna all'inizio</font></a><% 
			End If	
        End If
' fine barra di navigazione

	Else
'La query non ritorna dati
	%><p>Nessun record da visualizzare.</p><%
	End If

' chiudo e distruggo tutto

		rst.Close
		conn.Close
	Set rst = nothing
	Set conn = nothing

%>

Grazie
G.
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Non posso provare lo script nella sua completezza in quanto non ho il DB e neanche i file...

L'unica dritta che posso darti è di modificare la seguente riga da:
Codice:
extfile = left(split(x.Name,".pdf")(0),14)

in:
Codice:
extfile = extfile&" "&left(split(x.Name,".pdf")(0),14)

Nel primo esempio ti mostrerà solo l'ultimo file, nel secondo esempio la stringa si aggiunge ad ogni ciclo...
 

djjunior

Utente Attivo
24 Lug 2004
99
1
8
Grazie PAOLO,
ho provato ma mi restituisce il messaggio NESSUN RECORD DA VISUALIZZARE presumo perchè aggiungendosi al ciclo la query non riconosce il codice cliente (penso).
Se ti invio in privato, db e allegati, sono tutti file piccoli proprio per test, potresti aiutarmi a risolvere questo problema, per me molto importante, grazie 1000
G.
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Il problema è che venerdì sono via in ferie per una settimana, se vuoi ci posso provare in questi giorni nei ritagli di tempo.
Invia a: [email protected] una copia del DB ridotto a qualche utente e qualche allegato (anche file vuoti in pdf che ricalchino il nome da ricercare, compreso ovviamente il file ASP.
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Ok, prova questo:

Codice:
<%

' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
' @@@@ CONNESSIONE AL DATA BASE
' @@@@ Versione ACCESS

Dim strPath

	strPath = "C:\inetpub\MN4025484S005\blocchi\prova.mdb"
	strConnect = "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & strPath

' @@@@ Fine
' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


' funzione attesa per non sovracaricare il server(???)
        function Sleep(seconds)
            set oShell = CreateObject("Wscript.Shell")
            cmd = "%COMSPEC% /c timeout " & seconds & " /nobreak"
            oShell.Run cmd,0,1
        End function

' stampo le info mammano che partono (da disattivare una volta terminato lo script		
	response.buffer = false	



		
Select Case Request.QueryString("dir")
  Case ""
    v_pagina_corrente = 1
  Case "next"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) + 1
  Case "prev"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) - 1
End Select 

   		adOpenKeyset = 1
		v_record_pagina = 3 'Numero di record da visualizzare su ogni pagina


periodos = "allegati"

' splitto il codice cliente
dim fs,fo,x,extfile,folder
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("C:\inetpub\MN4025484S005\blocchi\" & periodos & "\")
set file3 = fo.files

for each x in file3
extfile = left(split(x.Name,".pdf")(0),14)
nomefile = x.Name

' estraggo le info sul cliente
	Set conn = Server.CreateObject("ADODB.Connection")
	Set rst = Server.CreateObject("ADODB.Recordset")
		conn.open  strConnect
		criterio = "SELECT * FROM user WHERE codice_cliente = '" & extfile & "' AND attivo = 'SI'"
		rst.Open criterio, conn, adOpenKeyset

'Se la query ritorna dati, visualizzo la pagina
	If Not (rst.bof and rst.eof) then 

		rst.PageSize = cint(v_record_pagina)
		rst.AbsolutePage = Cdbl(v_pagina_corrente)

'Ciclo sui record della pagina
	For y = 1 To rst.PageSize

'Esco alla fine della pagina, se è l'ultima e contiene meno record delle altre
	If rst.Eof then exit for 

' stampo i risultati
%>
<table width="400" cellpadding="2" cellspacing="2" border="1">
<tr>
<td colspan="2">SIMULAZIONE EMAIL:</td>
</tr>
<tr>
<td>Nome:</td>
<td><%=rst.fields("nome")%></td>
</tr>
<tr>
<td>Cognome:</td>
<td><%=rst.fields("cognome")%></td>
</tr>
<tr>
<td>Cod. Cliente:</td>
<td><%=rst.fields("codice_cliente")%></td>
</tr>
<tr>
<td>E-mail:</td>
<td><%=rst.fields("email")%></td>
</tr>
<tr>
<td>Allegato:</td>
<td><%=nomefile%></td>
</tr>
</table>
<% 


    rst.MoveNext 
	
  Sleep(2)
  
next ' ciclo clienti

	Else
'La query non ritorna dati
	%><p>Nessun record da visualizzare.</p><%
	End If

next ' ciclo split codice ciente

' chiudo e distruggo tutto

		rst.Close
		conn.Close
	Set rst = nothing
	Set conn = nothing

%>

Ho dovuto togliere la possibilità di far partire 5 email per volta ma ho aggiunto una pausa di due secondi (personalizabile) per ogni email.

Fammi sapere.
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
ok, togli la funzione di attesa e controlla intanto se così soddisfa le tue esigenze.

Codice:
' funzione attesa per non sovracaricare il server(???)
        function Sleep(seconds)
            set oShell = CreateObject("Wscript.Shell")
            cmd = "%COMSPEC% /c timeout " & seconds & " /nobreak"
            oShell.Run cmd,0,1
        End function

Codice:
  Sleep(2)

di script per creare un intervallo penso non sia difficile trovarlo on-line.
Aruba comunque non ha paura di inviare 20, 60,100 email contemporaneamente :) per me puoi evitare di usare l'attesa, preoccupati che lo script faccia quello che te vuoi.
 

djjunior

Utente Attivo
24 Lug 2004
99
1
8
Si funziona, ma non fa più la paginazione, come avevi impostato all'inizio, cosa necessaria per dividere a blocchi la spedizioni e alleggerire il server, considerando che dovrei spedire + di 200 mail per volta, vorrei fare pagine di 20 max 30 mail per volta.
Inoltre come vedi dal link che ti ho postato prima dopo 13 clienti c'è il messaggio "nessun record da visualizzare" e poi riprendono con i mancanti, e fin qui purtroppo c'ero arrivato dopo vari tentativi anche io.
Invece vorrei che restasse la paginazione per inviarla a blocchi .
Grazie
G.
 

djjunior

Utente Attivo
24 Lug 2004
99
1
8
Niente.... sto provando e riprovando a modificare il codice ma nulla.
Il ciclo per estrapolare il codice cliente non permette la paginazione.....aiutoooooooo
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
il problema è semplice, l'impaginazione va fatta su questo codice:
Codice:
set fs = Server.CreateObject("Scripting.FileSystemObject")
set fo = fs.GetFolder("C:\inetpub\my-site\info\fitness\script\blocchi\" & periodos & "\")
set fe = fo.files


for each y in fe
	extfile = left(split(y.Name,".pdf")(0),14)
		Response.Write extfile&"<br />"
	nomefile = y.Name
next
...che io sappia è impossibile.
 

djjunior

Utente Attivo
24 Lug 2004
99
1
8
Ho provato ad inserire comunque la funzione sleep funziona con pochi risultati ma con.molti risultati va in timeout... Quindi nn posso far nulla x mandare mail a blocchi, eventualmente inviare una mail ogni refresh d pagina...oppure consigliami un alternativa!!! Grazie ancora
 
Discussioni simili
Autore Titolo Forum Risposte Data
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
S [risolto] Invio scheda dettagliata in mail Classic ASP 6
I [Risolto] Problemi invio e-mail con CDOSYS con domini @live.it Classic ASP 4
S Problema in PHP per invio file XML - RISOLTO- PHP 8
S [RISOLTO]invio form con select onchange Javascript 2
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4

Discussioni simili