14. juli 2004 - 16:05Der er
5 kommentarer og 1 løsning
Forsendelse af nyhedsbrev
Jeg har stykket et script sammen, som fungerer udemærket til at sende nyhedsmail med. Jeg frygter bare, at hvis jeg skulle stå i den heldige situation, at jeg får mange tilmeldte på mailinglisten - så går der 1000 år og en nat, og en eventuel server timeout. Det jeg gør er, at lægge en loop således:
do until rs2.EOF
DIM overskrift, navn, emailadresse overskrift = rs("Title") navn = rs2("Navn") emailadresse = rs2("Adresser") strNavnTil = "neander" strEmail = "min@email.dk"
if Mailer.SendMail then Response.Write " " else Response.Write "Der er sket en fejl: <br><br>" & Mailer.Response & "." end if
rs2.MoveNext loop
Jeg har for en sikkerheds skyld sat en Server.ScriptTimeout = 500, men er det optimalt? Findes der en teknisk set bedre løsning på det? Hvordan kan jeg optimere det?
du kan eventuelt gøre det med en paging løsning hvor du sender fx. 100 mails pr. side.. Det sikre dig mod timeout, men det gør ikke din løsning hurtigere.. men afhængigt af hvor mange mails du sender til jo længere tid vil det automatisk tage..
Umiddelbart vil jeg sige det er optimalt med at sætte timeout op.. Men når du alligevel sender som BCC (Blind CC) kan du vel egentlig bare nøjes med at sende nogle færre mails..
Ved ikke helt hvor mange CC'er der kan være i en mail.. Men du kan jo:
Men man kan jo om ikke andet bare gøre det på denne måde vil jeg tro...
<% DIM overskrift, navn, emailadresse, i overskrift = rs("Title") strNavnTil = "neander" strEmail = "min@email.dk"
do until rs2.EOF
Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.FromName = "neander" Mailer.FromAddress = "min@email.dk" Mailer.RemoteHost = "pasmtp.tele.dk" for i = 0 to 10 navn = rs2("Navn") emailadresse = rs2("Adresser") Mailer.AddBCC navn, emailadresse rs2.movenext next
Mailer.Subject = overskrift Mailer.BodyText = "bla bla bla"
if Mailer.SendMail then Response.Write " " else Response.Write "Der er sket en fejl: <br><br>" & Mailer.Response & "." end if rs2.movenext loop %>
Så skulle du gerne få sendt 10 mails af gangen i stedet for blot en enkelt...
arh... næsten.. den springer jo hver 11. mail over, så nok nærmere i stedet:
<% DIM overskrift, navn, emailadresse, i overskrift = rs("Title") strNavnTil = "neander" strEmail = "min@email.dk"
do until rs2.EOF
Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.FromName = "neander" Mailer.FromAddress = "min@email.dk" Mailer.RemoteHost = "pasmtp.tele.dk" for i = 0 to 10 navn = rs2("Navn") emailadresse = rs2("Adresser") Mailer.AddBCC navn, emailadresse rs2.movenext next
Mailer.Subject = overskrift Mailer.BodyText = "bla bla bla"
if Mailer.SendMail then Response.Write " " else Response.Write "Der er sket en fejl: <br><br>" & Mailer.Response & "." end if loop %>
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.