Avatar billede neander Nybegynder
14. juli 2004 - 16:05 Der 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"

Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.FromName      = "neander"
Mailer.FromAddress    = "min@email.dk"
Mailer.RemoteHost     = "pasmtp.tele.dk"
Mailer.AddBCC         navn, emailadresse
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


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?
Avatar billede ellebaek Nybegynder
14. juli 2004 - 16:21 #1
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:

<%
DIM overskrift, navn, emailadresse
overskrift = rs("Title")
strNavnTil = "neander"
strEmail = "min@email.dk"

Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.FromName      = "neander"
Mailer.FromAddress    = "min@email.dk"
Mailer.RemoteHost    = "pasmtp.tele.dk"
do until rs2.EOF

navn = rs2("Navn")
emailadresse = rs2("Adresser")
Mailer.AddBCC        navn, emailadresse
rs2.movenext
loop
Mailer.Subject      = overskrift
Mailer.BodyText      = "bla bla bla"

if Mailer.SendMail then
Response.Write "&nbsp;"
else
Response.Write "Der er sket en fejl: <br><br>" & Mailer.Response & "."
end if
%>

På den måde får du sendt meget færre links..
Chekker lige hvor mange man kan tilføje på den måde..
2 sek.!
Avatar billede ellebaek Nybegynder
14. juli 2004 - 16:26 #2
hmm...

Der var ikke lige nogen info der..

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 "&nbsp;"
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...
Avatar billede ellebaek Nybegynder
14. juli 2004 - 16:26 #3
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 "&nbsp;"
else
Response.Write "Der er sket en fejl: <br><br>" & Mailer.Response & "."
end if
loop
%>
Avatar billede neander Nybegynder
14. juli 2004 - 16:28 #4
okay, tak... jeg kigger på det.
Avatar billede neander Nybegynder
15. juli 2004 - 19:00 #5
tak, du vil nok gerne ha nogle points...
Avatar billede ellebaek Nybegynder
17. juli 2004 - 22:40 #6
jo tak :-)

Undskyld det sene svar..!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester