Hur skickar jag nyhetsbrev?

ASP

4 svar · 218 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Trådstart#1

Är nedanstående kod korrekt eller skall jag placera skapandet av objektet utanför loopen? Komponenten är ASPMail.

sql_select = "select email from users"
data_source = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\databases\email.mdb")

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql_select, data_source

While Not rs.EOF
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.CharSet = 2
Mailer.FromName = "John Doe"
Mailer.FromAddress= "you@domain.com"
Mailer.RemoteHost = "mail.domain.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
Medlem sedan dec. 19998 577 inlägg
#2

Ja, allt som inte skall ändras för varje runda, kan jag rekommendera att flytta utanför loopen... :)

Medlem sedan juni 20001 257 inlägg
#3

Hur skall koden då se ut? Jag måste väl tömma alla variabler varje gång jag börjar om i loopen?

Medlem sedan dec. 19998 577 inlägg
#4

Detta borde funka:

Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.CharSet = 2
Mailer.FromName = "John Doe"
Mailer.FromAddress= "you@domain.com"
Mailer.RemoteHost = "mail.domain.com"
While Not rs.EOF
Mailer.AddRecipient "", rs("email")
Mailer.Subject = Request.Form("subject")
Mailer.BodyText = message & rs("email")
Mailer.SendMail
rs.MoveNext
Wend
Set mail = Nothing
rs.Close
Set rs = Nothing
Medlem sedan juni 20001 257 inlägg
#5

Man måste nog använda ClearBodyMessage efter varje utskick, annars appendas Message på Message.

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)