Negli script #55 e #56 abbiamo visto come costruire una semplice mailing list.
Anche se ASP non nasce per questo genere di cose alla fine si rivela utile perchè pratico e semplice da usare.
Vediamo dunque di migliorare lo script in oggetto per fornire una versione che riesca ad inviare più e-mail e soprattutto senza problemi di timeout.
La soluzione scelta consiste nell'impostare una paginazione sull'invio: questo permette al server di respirare ed a noi di evitare errori dovuti al timeout della pagina:
<% ' manca la parte relativa alla connessione - da aggiungere ' salvo il messaggio in una var di sessione così da recuperarlo sulle altre pagine if len(Request("messaggio"))>0 then Session("messaggio") = Request("messaggio") end if rs.Open strSQL, conn, 1, 3 ' paginazione mypage = Request("pg") if mypage="" then mypage = 1 strPageSize = 20 rs.cachesize = strPageSize rs.pagesize = strPageSize rs.absolutepage = mypage maxpages = CInt(rs.pagecount) i = 0 do while not rs.EOF danome = "Nostro sito" damail = "<webmaster@boss.ext>" dachi = chr(34) & danome & chr(34) & damail Set objMail = Server.CreateObject("CDONTS.NewMail") objMail.From = dachi objMail.Body = Session("messaggio") objMail.To = chr(34) & rs("nomecompleto") & chr(34) &"<"& rs("email")&">" objMail.Subject = oggetto objMail.Send set objMail = nothing i = i + 1 if i = strPageSize then Exit Do rs.MoveNext loop rs.close Set rs = Nothing if Cint(mypage)<Cint(maxpages) then Response.redirect("invia.asp?pg=" & CINT(mypage)+1) Response.write ("Caricate " & maxpages & " pagine") %>
Approfondimenti
#55 - Realizzare una mailing-list con ASP 1/2https://www.aspitalia.com/liste/usag/script.aspx?ID=55
#56 - Realizzare una mailing-list con ASP 2/2
https://www.aspitalia.com/liste/usag/script.aspx?ID=56
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.