Jag skall skicka ett nyhetsbrev till 600 personer och vill vara helt säker på att koden är rätt. Jag är lite orolig för att det kommer bli Timeout och liknande. Bland annat vet jag inte hur det skall se där jag skapar objektet. Detta skall väl hellre göras utanför loopen? Men i så fall måste jag väl tömma variblerna efter varje skick?
<%
Dim rs, mail, subject, message, data_source, sql_select, no
no = 0
message = Request.Form("message")
sql_select = "select email from users"
data_source = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql_select, data_source
server.scripttimeout = 3600
While Not rs.EOF
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.Timeout = 3600
Mailer.CharSet = 2
Mailer.FromName = "gratistavlingar.com"
Mailer.FromAddress= "nyhetsbrev@gratistavlingar.com"
Mailer.RemoteHost = "mail.host.com"
Mailer.AddRecipient "", rs("email")
Mailer.Subject = Request.Form("subject")
Mailer.BodyText = message & rs("email")
Mailer.SendMail
Set mail = Nothing
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
%>
------------------
http://www.gratistavlingar.com
[Redigerat av kristoffer den 18 jan 2001]
[Redigerat av kristoffer den 18 jan 2001]
Ingen som vet?
------------------
http://www.gratistavlingar.com
VideMedlem sedan dec. 19998 577 inlägg När jag skall skapa en sådan funktion, så brukar jag lägga till ett fäljt i databasen. Sedan när jag skickat ett brev så sätter jag en etta i brevets post. Jag ändrar sedan SQL-satsen så att vilkoret för att en post skall komma med, är att det nya fältet inte har en etta.
Då spelar det ingen roll om det blir timeout, du kan fortsätta igen tills du har tagit dig igenom hela databasen med adresser...
Sedan kan du ju för att slippa uppdatera sidan själv lägga in META-refresh så länge det finns poster kvar... :)
Mvh, Vide
------------------
Function onLick(name)
Punch.name(in_the_ear)
End Function
Jourhavande Vide
PatrikBMedlem sedan mars 20002 836 inlägg Skulle oxå "lyfta" ur initieringen av mail komponenten från loopen och på så vis oxå "speeda" upp scriptet lite. Initiering kostar på prestanda.
ex:
<%
Dim rs, mail, subject, message, data_source, sql_select, no
no = 0
message = Request.Form("message")
sql_select = "select email from users"
data_source = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db.mdb")
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql_select, data_source
server.scripttimeout = 3600
While Not rs.EOF
Mailer.Timeout = 3600
Mailer.CharSet = 2
Mailer.FromName = "gratistavlingar.com"
Mailer.FromAddress= "nyhetsbrev@gratistavlingar.com"
Mailer.RemoteHost = "mail.host.com"
Mailer.AddRecipient "", rs("email")
Mailer.Subject = Request.Form("subject")
Mailer.BodyText = message & rs("email")
Mailer.SendMail
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
Set mail = Nothing
%>
cya,
------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function
[Redigerat av PatrikB den 23 jan 2001]