Ciao, ho il solito problema di timeout con l'invio di una mailing list a circa 500 indirizzi estratti dal database (CDO).
Posto il codice qui sotto, come posso modificarlo in modo che mi invii dei pacchetti da 50 email per volta.
Da notare che nel db ho un campo di nome "mailinviata" settato di default a "0".
<%
dim Conn,StrConn,rs,rx
set Conn=Server.CreateObject("ADODB.Connection")
StrConn = " DRIVER=.........................."
set rs=Server.CreateObject("ADODB.Recordset")
set rx=Server.CreateObject("ADODB.Recordset")
Conn.Open StrConn
destinazione=request.Form("destinazione")
interesse=request.Form("interesse")
campo=request.Form("attivita")
titolo=request.Form("titolo")
azienda=request.Form("azienda")
' Ricava il numero idazienda dal nome *******
if azienda<>"" then
rx.Open "SELECT idazienda FROM aziende WHERE azienda='"&azienda&"'", Conn
az=rx("idazienda")
end if
' *******************************************
if destinazione="Soci/Comitato" then
if interesse<>"" then
if interesse="Tecnologia chimica" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND interesse1=1", Conn
elseif interesse="Tecnologia farmaceutica" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND interesse2=1", Conn
elseif interesse="Tecnologia biochimica" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND interesse3=1", Conn
elseif interesse="Microbiologia" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND interesse4=1", Conn
elseif interesse="Problemi analitici" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND interesse5=1", Conn
elseif interesse="Controllo Qualità/GMP" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND interesse6=1", Conn
elseif interesse="Farmacologia" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND interesse7=1", Conn
elseif interesse="Sperimentazione clinica" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND interesse8=1", Conn
elseif interesse="Marketing" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND interesse9=1", Conn
elseif interesse="Regulatory affairs" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND interesse10=1", Conn
end if
elseif campo<>"" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND campo='"&campo&"'", Conn
elseif titolo<>"" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND titolo='"&titolo&"'", Conn
elseif azienda<>"" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND idazienda='"&az&"'", Conn
else
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1", Conn
end if
end if
if destinazione="Soci" then
if interesse<>"" then
if interesse="Tecnologia chimica" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario') AND interesse1=1", Conn
elseif interesse="Tecnologia farmaceutica" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario') AND interesse2=1", Conn
elseif interesse="Tecnologia biochimica" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario') AND interesse3=1", Conn
elseif interesse="Microbiologia" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario') AND interesse4=1", Conn
elseif interesse="Problemi analitici" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario') AND interesse5=1", Conn
elseif interesse="Controllo Qualità/GMP" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario') AND interesse6=1", Conn
elseif interesse="Farmacologia" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario') AND interesse7=1", Conn
elseif interesse="Sperimentazione clinica" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario') AND interesse8=1", Conn
elseif interesse="Marketing" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario') AND interesse9=1", Conn
elseif interesse="Regulatory affairs" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario') AND interesse10=1", Conn
end if
elseif campo<>"" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario') AND campo='"&campo&"'", Conn
elseif titolo<>"" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario') AND titolo='"&titolo&"'", Conn
elseif azienda<>"" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario') AND idazienda='"&az&"'", Conn
else
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND (ruolo='Socio' OR ruolo='Membro onorario')", Conn
end if
end if
if destinazione="Comitato" then
if interesse<>"" then
if interesse="Tecnologia chimica" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato' AND interesse1=1", Conn
elseif interesse="Tecnologia farmaceutica" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato' AND interesse2=1", Conn
elseif interesse="Tecnologia biochimica" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato' AND interesse3=1", Conn
elseif interesse="Microbiologia" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato' AND interesse4=1", Conn
elseif interesse="Problemi analitici" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato' AND interesse5=1", Conn
elseif interesse="Controllo Qualità/GMP" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato' AND interesse6=1", Conn
elseif interesse="Farmacologia" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato' AND interesse7=1", Conn
elseif interesse="Sperimentazione clinica" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato' AND interesse8=1", Conn
elseif interesse="Marketing" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato' AND interesse9=1", Conn
elseif interesse="Regulatory affairs" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato' AND interesse10=1", Conn
end if
elseif campo<>"" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato' AND campo='"&campo&"'", Conn
elseif titolo<>"" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato' AND titolo='"&titolo&"'", Conn
elseif azienda<>"" then
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato' AND idazienda='"&az&"'", Conn
else
rs.Open "SELECT mail,nome,cognome FROM soci WHERE stato=1 AND opzione1='Comitato'", Conn
end if
end if
'Invio l'email
Dim miaMail
while not rs.eof
if rs("mail")<>"" then
nome=rs("nome")
cognome=rs("cognome")
Dim objMail, objConfig
Set objMail = createObject("CDO.Message")
Set objConfig = Server.createObject("CDO.Configuration")
With objConfig
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.assolo.net"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 1200
.Fields.update
End With
Set objMail.Configuration = objConfig
objMail.From = request.form("mail_mittente")
objMail.To = rs("mail")
objMail.Subject = request.form("oggetto")
objMail.Fields("urn:schemas:httpmail:importance"). Value = 2
objMail.Fields.update()
' Corpo del messaggio
HTML=""
HTML=HTML+"<html>"
HTML =HTML+"<head>"
HTML =HTML+"<title>Messaggio e-mail</title>"
HTML =HTML+"</head>"
HTML =HTML+"<body>"
HTML =HTML+"Caro socio "+nome+" "+cognome+",
"
HTML =HTML+request.form("messaggio")
if request.Form("allegato")<>"" then
HTML =HTML+"
Allegato :"+request.form("allegato")+""
end if
'objMail.TextBody = HTML 'Formato Testo
objMail.HTMLBody = HTML 'Formato HTML
objMail.Send()
Set objMail = Nothing
end if
rs.movenext
wend
else
Response.redirect("../errore_login.asp")
end if
%>