20. juni 2007 - 15:59Der er
10 kommentarer og 1 løsning
Mailing system
Hej
Jeg har lavet et system der sender mail's ud. Problemet er jeg skal sende mails til 3000 personer. Det tar omkring 25 min, så mit spørgsmål er også der er en anden måde at sende så mange mails på, her er selve mail koden:
Dim Mailer,bodym
Set Mailer = Server.CreateObject("JMail.Message") Mailer.From = "x" Mailer.FromName = "x" Mailer.AddRecipient("x") Mailer.Subject = Request.Form("x") Mailer.Body = "Hej " & navn & VbCrLf & VbCrLf & bodym Mailer.Send("x")
Så vidt jeg husker, skal du vist sætte sessionen timeout op.. Og så er det bare med at lave en loop, der sender mailen til 1 person ad gangen..
Hvis du sender til mange/samtligt brugere på een gang, kan det blive opfatter som spam, og så vil de muligvis blive blokeret..
Synes godt om
Slettet bruger
20. juni 2007 - 17:46#2
Som der står i spørgsmålet, kan jeg sagtens sende mine mails, og de bliver også sendt en af gangen. Jeg tænkte bare der måtte være en anden måde at gøre det på, som måske ikke tager 25 min ??, men det tar måske bare så lang tid ?
Det mest optimale, vil jeg tro, er nok at gøre sådan her:
Dim Mailer,bodym
Set Mailer = Server.CreateObject("JMail.Message")
' START_LOOP
Mailer.From = "x" Mailer.FromName = "x" Mailer.AddRecipient("x") Mailer.Subject = Request.Form("x") Mailer.Body = "Hej " & navn & VbCrLf & VbCrLf & bodym Mailer.Send("x")
' SLUT_LOOP
Set Mailer = Nothing
Så skal du ikke nedlægge og oprette objekter og variabler.
En anden ting du kan prøve: Hent alle email adresserne ud i en streng og splitte strengen. Så får du en array, som du kan løbe igennem.
Problemet kan være, at den skal vente på både Mailer og databasen..
Eksempel:
set rs = conn.execute(sql)
if rs.bof or rs.eof then
response.write "der er ingen emails i databasen"
else
dim e do while not rs.eof
e = e & rs("email") & ","
rs.movenext loop
e = left(e, len(e) - 1)
e = split(e, ",")
Dim Mailer,bodym
Set Mailer = Server.CreateObject("JMail.Message")
dim i for i = lbound(e) to ubound(e) Mailer.From = "x" Mailer.FromName = "x" Mailer.AddRecipient("x") Mailer.Subject = Request.Form("x") Mailer.Body = "Hej " & e(i) & VbCrLf & VbCrLf & bodym Mailer.Send("x") next
Set Mailer = Nothing end if
set rs = nothing ' husk at frigøre din forbindelse ("conn" i mit eksempel) osv..
Synes godt om
Slettet bruger
27. juni 2007 - 11:41#8
ideen er god nok, men hvis du ikke sætter mail til "ingenting" vil den bare adder mail adressen, så der tilsidst vil være 1000 mail adresser. Altså så den sender en mail til 1000 hver gang den bare skulle sende en.
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.