Avatar billede Slettet bruger
20. juni 2007 - 15:59 Der 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")

    Set Mailer = Nothing

Nogen der har et forslag ??
Avatar billede thesurfer Nybegynder
20. juni 2007 - 16:49 #1
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..
Avatar billede 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 ?
Avatar billede thesurfer Nybegynder
20. juni 2007 - 20:01 #3
Du kunne også sende til flere på en gang.. jeg ved ikke om det går hurtigere..
Avatar billede madeindk Nybegynder
20. juni 2007 - 20:05 #4
Er det den samme mail alle brugere skal ha eller står der noget forskelligt i dem?
Avatar billede Slettet bruger
20. juni 2007 - 20:15 #5
Helt den samme, den kører bare igennem et loop hvor den sender mail's til de forskellige mails den henter til databasen.
Avatar billede Slettet bruger
20. juni 2007 - 20:20 #6
Fra databasen, skulle der stå
Avatar billede thesurfer Nybegynder
21. juni 2007 - 10:43 #7
Hvor har du din loop henne?

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..
Avatar billede 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.
Avatar billede thesurfer Nybegynder
27. juni 2007 - 15:40 #9
Er du sikker på, at Mailer.Send("x") ikke tømmer mail-objektet?

Prøv at lave en test, med et lille antal mails (f.eks. 3-5 mails), med din egen email adresse..
Avatar billede Slettet bruger
26. juli 2007 - 17:37 #10
har jeg testet gør den ikke, men smid et svar, så kan du point som tak for hjælen, eller lukker jeg den i aften.
Avatar billede thesurfer Nybegynder
26. juli 2007 - 20:52 #11
Ok, 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