Avatar billede lsolesen Nybegynder
05. december 2002 - 14:35 Der er 5 kommentarer og
1 løsning

JMail-mailingliste

Jeg har lavet en mailingsliste med følgende kode, men jeg er lidt i tvivl om jeg har gjort det på den mest optimale måde. E-mailadresserne hentes fra et array! Har du nogen kommentarer?


    on error resume next    
   
        For num = 0 to Ubound(arrEmail,2)
       
        Set JMail             = Server.CreateObject("JMail.SMTPMail")
               
        JMail.ServerAddress = "mail.legestue.net" 'smtp-sender
   
        ' Aktiverer fejllogging
        JMail.Logging         = False
   
        ' mail config settings
        JMail.Charset         = "iso-8859-1"
        JMail.ContentTransferEncoding = "8bit"
        JMail.Priority         = 3
       
        JMail.Sender         = "lars@legestue.net"
        JMail.Subject         =  header
       
            ' Send oplysninger...
        JMail.LazySend = true
        'JMail.Silent = True
       
        email = trim(arrEmail(2, num))
   
        JMail.ClearRecipients()
        JMail.AddRecipient email
   
        ' nødvendigt at have denne del her, da email ændrer sig
        fjern = ""
        fjern = fjern + "  F R A M E L D  D I G  N Y H E D S B R E V E T"& vbCrLf
        fjern = fjern + "Denne e-mail er sendt til adressen: "& email & vbCrLf
        fjern = fjern + "Du kan framelde dig Fodboldens Legestues nyhedsbrev ved at klikke på:"& vbCrLf
        fjern = fjern + "http://www.legestue.net/mail3/mailingliste.asp?frameld="& email & vbCrLf & vbCrLf

        ' samling af teksten
        bodytekst = tekst + respons + fjern + kontakt
       
        JMail.Body            = bodytekst

        'send
        JMail.Execute
       
        ' tjekker for fejlmeddelelser
        If err.Number <> 0 Then
            Response.Write "<p><b>Beskeden blev ikke sendt til: " & email & "</b>"
   
            If err.Number = -2147418113 Then
                Response.Write "<p><b>E-mailadressen: " & email & " var ikke rigtig</b>"
            else
                Response.Write "<p>Prøv igen senere.</b><br>"
            end if
           
        Else
            response.write "<br>E-mail er sendt til: "& email
        end if   
       
        JMail.close
        set JMail = nothing
       
    Next ' loop
Avatar billede oasen Nybegynder
05. december 2002 - 16:25 #1
Ja...

Set JMail = Server.CreateObject("JMail.SMTPMail")

For num = 0 to Ubound(arrEmail,2)

    blablabla...

Next

JMail.close
set JMail = nothing
Avatar billede lsolesen Nybegynder
05. december 2002 - 17:30 #2
Nu har jeg lavet koden om til at se sådan her ud med udgangspunkt i oasens svar. Jeg synes imidlertid stadig at det tager lidt lang tid. Jeg har lavet en test-database med 25 email-adresser, og det tager omkring 18 sekunder at eksekvere scriptet. Hvad vil der ikke ske, når jeg skal til at sende til mine 1200 e-mail-adresser på min mailingliste?

    on error resume next    
   
        Set JMail             = Server.CreateObject("JMail.SMTPMail")
               
        JMail.ServerAddress = "mail.legestue.net" 'smtp-sender
   
        ' Aktiverer fejllogging
        JMail.Logging         = False
   
        ' mail config settings
        JMail.Charset         = "iso-8859-1"
        JMail.ContentTransferEncoding = "8bit"
        JMail.Priority         = 3
       
        JMail.Sender         = "lars@legestue.net"
        JMail.Subject         =  header
       
            ' Send oplysninger...
        JMail.LazySend = true
        'JMail.Silent = True
           
        For num = 0 to Ubound(arrEmail,2)
       
            email = trim(arrEmail(2, num))
   
            JMail.ClearRecipients()
            JMail.AddRecipient email
   
            ' nødvendigt at have denne del her, da email ændrer sig
            fjern = ""
            fjern = fjern + "  F R A M E L D  D I G  N Y H E D S B R E V E T"& vbCrLf
            fjern = fjern + "Denne e-mail er sendt til adressen: "& email & vbCrLf
            fjern = fjern + "Du kan framelde dig Fodboldens Legestues nyhedsbrev ved at klikke på:"& vbCrLf
            fjern = fjern + "http://www.legestue.net/mail3/mailingliste.asp?frameld="& email & vbCrLf & vbCrLf

            ' samling af teksten
            bodytekst = tekst + respons + fjern + kontakt
       
            JMail.Body            = bodytekst

            'send
            JMail.Execute
       
            ' tjekker for fejlmeddelelser
            If err.Number <> 0 Then
                Response.Write "<p><b>Beskeden blev ikke sendt til: " & email & "</b>"
   
                If err.Number = -2147418113 Then
                    Response.Write "<p><b>E-mailadressen: " & email & " var ikke rigtig</b>"
                else
                Response.Write "<p>Prøv igen senere.</b><br>"
                end if
            Else
                response.write "<br>E-mail er sendt til: "& email
            end if   
       
        Next ' loop

JMail.close
set JMail = nothing
Avatar billede midas_dk Nybegynder
05. december 2002 - 17:52 #3
Hehe... Så svil det ta' knap et kvarter at sende mails ud?

Nej, umiddelbart er der vel ikke så meget andet at gøre... Det TA'R jo lissom tid at eksekvere ASP-kode, og når du så ovenikøbet er nødsaget til at fejlchecke for hver enkelt loop, konkatenere en masse strenge osv. er det lidt småskidt. Overvej at lave et Windowsprogram i VB (eller VB.NET) i stedet.
Avatar billede oasen Nybegynder
06. december 2002 - 10:01 #4
Det er jo ligegyldigt - du kan bare lade den stå og hygge sig, mens den udsender mails.

Husk at sætte dette ind i toppen af din side:

Server.ScriptTimeout = 1000

Talværdien er den tid i sekunder, der går, før siden "timer out". Den kan du selv ændre.
Avatar billede lsolesen Nybegynder
06. december 2002 - 10:08 #5
Det er rigtigt. Jeg har sat en scripttimeout, så jeg kører videre med dette script. Tak for svaret.
Avatar billede oasen Nybegynder
07. december 2002 - 17:17 #6
Ur welcome ;)
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