[Risolto] Invio mail a blocchi

  • Creatore Discussione Creatore Discussione djjunior
  • Data di inizio Data di inizio

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)
%>
 
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?
 
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.
 
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:
 
nel 2006, nella stessa situazione, mettevo in "pausa"

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

nell'esempio 10 secondi
ciao
Marino
 
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.
 
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
 
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.
 
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...
 
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.
 
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.
 
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.
 
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.
 
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.
 
Niente.... sto provando e riprovando a modificare il codice ma nulla.
Il ciclo per estrapolare il codice cliente non permette la paginazione.....aiutoooooooo
 
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.
 
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