Newsgroup: it.comp.www.asp
Titolo: Gestire una mailing list via asp

Ho realizzato una mailing list che ha suscitato un interesse inatteso. 
Il numero di iscritti che ho realizzato non mi consente piu di mandare 
dei messaggi (considerate che invio anche un file allegato) in quanto 
la pagina asp inizia il loop sul database degli indirizzi e poi si 
interrompe per timeout.
Quando c'erano poche decine di iscritti tutto andava bene....e ora? 
Come posso risolvere?
Ciao.
--
Posted from 212.131.165.199 by way of 
smtp2.libero.it
 [193.70.192.52] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

interrompe per timeout.
non so se la cosa si può fare con CDONTS, ma se spedisci anche un
allegato credo ti convenga riempire uno stringone di indirizzi CCN.

Credo che mi scontrero' prima o poi anche io con questo problema ed ho gia'
pensato su come "scremare" la query che restituisce gli indirizzi.
1° METODO:
Per ogni iscritto mi faccio indicare anche la regione o la provincia o il
comune o la nazione (insomma qualcosa in + rispetto al nome e all'indirizzo
che mi consenta di restringere il recordset) e successivamente faccio degli
invii separati (tutti quelli del Lazio, tutti quella della Toscana e cosi'
via)
2° METODO:
Aggiungo un valore "INVIATO" per ogni iscritto. Inizialmente tale valore e'
False. Quando avvio la pagina per inviare la mail questa la invia e tutti i
primi 10/20 che hanno il campo = False e aggiorno il loro valore in True.
Personalmente la seconda mi piace di + ... ma non so' se sono riuscito a
spiegarmi al meglio ... ho un po' sonno!
Ciao,
Pierpaolo

 primi 10/20 che hanno il campo = False e aggiorno il loro valore in True.
Non faresti prima a fare una paginazione ed a spedire ad una pagina di
indirizzi alla volta?
O ancora mettere un campo contatore, quando parte prende i primi 10 poi
passi nel redirect (reload) uno start=11 e cosi' via.
Saluti.
Stefano.

Gulp!!!  E' vero ...!!!
Ho imparato una bella cosa!!!
Grazie,
Pierpaolo


Questo metodo non l'ho testato con le mailing-list ma dovrebbe funzionare...
Metti ad inizio pagina:
<% response.buffer=true %>
Quindi, quando effettui il ciclo di invio email fai:
<%
for t=1 to numero_iscritti
'
' codice di invio email
'
if t/20=int(t/20) then response.write "."
response.flush
next
%>
In questo modo ogni 20 email inviate lo script invia al browser un carattere
(il punto) in modo che non vada in errore di timeout... Naturalmente al
posto del punto potresti mettere delle percentuali...
Ciao,
Zani A.

BCC, non CC.
CCN è la traduzione italiana di BCC.
--
make it idiot proof and someone will make a better idiot.
--
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/

> BCC, non CC.
ldp> CCN è la traduzione italiana di BCC.
Non so come lo chiami guardafuori espresso, ma il campo è BCC. Se provi
a mettere un campo CCN nello header ti viene ignorato...
Che poi  la proprietà dell'oggetto  CDONTS per gli indirizzi  in Blind
Carbon Copy  sia CCN  è un'altro discorso,  non uso  il tool e  non lo
conosco.
+----------------------------------------------------------------+
| Gian Uberto Lauri * "So, are you working on fixing that bug    |
| 
sa...@eng.it
      *  *now* or leaving it until later ?" - YES  |
+----------------------------------------------------------------+
| Attenzione: rispondo ad ogni invio di pubblicità non richiesta | 
| o spam di qualsiasi altro genere con un messaggio al provider  |
| di competenza. Ai sensi della legge sulla privacy NON avete il |
| permesso di utilizzare i miei dati per questi scopi.           |
+----------------------------------------------------------------+

a mettere un campo CCN nello header ti viene ignorato...
netscape italiano lo chiama ccn.  il problema è che se dici bcc ad uno
che ce l'ha italiano quello non capisce niente, mentre in genere chi
ha progframmi in inglese è sufficientemente scaltro per arrivare alla
traduzione.


 Zani A.
Ciao anch'io lo stesso problema!!
<% response.buffer=true %>
<%
oggetto=request.form("oggetto")
priorita=request.form("priorita")
titolo=request.form("titolo")
testo=request.form("testo")
pub=request.form("pubblicita")
%>
<%
for t=1 to numero_iscritti (questo rimane "numero_iscritti" o devo mettere un
valore?)
'
' codice di invio email (tutto questo codice?)
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.Recordset")
Conn.Open StrConnect
SQL = "SELECT mailing.* FROM mailing"
RS.Open SQL, Conn
Do While not RS.EOF
Dim objMail
Set objMail = Server.CreateObject("CDONTS.NewMail")
eccetera
objMail.Send
set objMail = nothing
RS.MoveNext
loop
Set RS = NOTHING
Conn.close
Set Conn = nothing
if t/20=int(t/20) then response.write "."
response.flush
next
%>
Cosi potrebbe funzionare o devo spostare qualcosa?
Grazie Roberto

 writes:
ldp> netscape italiano lo chiama ccn.
Ti ripeto. Possono tradurlo come  cavolo vogliono. Ma lo header fisico
della  lettera continua  a contenere  BCC e  non CCN.   E  questo deve
importare  al  programmatore.  Gli  utonti non  credo  leggano  questo
gruppo, e mi seccherebbe essere in errore...
					Gian Uberto Lauri
 
la...@eng.it


Puoi modificare il codice in questo modo:
<% response.buffer=true %>
<%
oggetto=request.form("oggetto")
priorita=request.form("priorita")
titolo=request.form("titolo")
testo=request.form("testo")
pub=request.form("pubblicita")
'
' codice di invio email (tutto questo codice?)
' YES!
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.Recordset")
Conn.Open StrConnect
SQL = "SELECT mailing.* FROM mailing"
RS.Open SQL, Conn
Dim objMail
t=0
Do While not RS.EOF
Set objMail = Server.CreateObject("CDONTS.NewMail")
eccetera
objMail.Send
set objMail = nothing
RS.MoveNext
if t=20 then response.write ".":t=0
t=t+1
response.flush
loop
Set RS = NOTHING
Conn.close
Set Conn = nothing
%>
Ciao,
Zani A.

 Set Conn = nothing
Ho fatto così ma mi dà questo errore dopo 3 minuti
........ error 'ASP 0113'
Script timed out
/mailinglist/invia.asp
The maximum amount of time for a script to execute was exceeded.
You can change this limit by specifying a new value for
the property Server.ScriptTimeOut
or by changing the value in the IIS administration tools.
Come posso fare? Grazie Roberto

Come posso fare? Grazie Roberto
Pensavo che quel trucchetto funzionasse anche con le mailing-list (io lo
avevo adottato per una gestione pesante dei database).
Per evitare quell'errore da te citato puoi aumentare il tempo di esecuzine
dello script. In questo modo:
<%
response.buffer=true
Server.ScriptTimeOut =1000
%>
...

 > Zani A.
Ma per errore di timeout intendi quello del server o del client?
Questo trucchetto immagino riesca a fregare il timeout del client, per
quello del server si può impostare da codice.
Simone