Avatar billede lsolesen Nybegynder
09. januar 2003 - 17:53 Der er 2 kommentarer og
2 løsninger

J-Mail mailingliste

Jeg har tidligere søgt svar i denne gruppe, og jeg fandt frem til nedenstående script. Jeg er imidlertid ret sikker på, at scriptet ikke sender ud til alle i min database (men den sender ud til nogle). Er der nogen der kan give en mulig forklaring på det? Den gav svar om at en af e-mail-adresserne ikke var rigtig, men det forklarer jo ikke, hvorfor den ikke sender til alle de andre, som blev godkendt!

<%
'Variable erklæres
dim sql, rs, maildb, arrEmail
dim show, num
dim strUpdate, dbPath, conn, antal

' script timeout sættes
Server.ScriptTimeout = 1000

'Det tælles hvor mange, der er på listen
sql ="select count(*) as count from mailingliste"
set rs = conn.execute(sql)

antal = rs("count")
rs.close
set rs=nothing

Response.Write "<p>Der er " & antal & " på din mailingliste. Det kan tage " & CInt((antal * (20/25)) /60) & " minutter at sende alle e-mails.</p>"


Response.Write "<h3>Vejledning</h3><ul>"
Response.Write "<li>Start med at skrive dit nyhedsbrev i en teksteditor. Derfra kopierer du al din tekst og sætter ind i tekstvinduet nedenunder.</li>"
Response.Write "<li>Lav en overskrift, fx Nyhedsbrev for oktober 2002.</li>"
Response.Write "<li>Du skal ikke skrive, hvordan man framelder sig. Det gør programmet automatisk. Kontaktinformation tilføjes også automatisk til e-mailen</li>"
Response.Write "<li>Vær opmærksom på, at det godt kan tage lang tid at sende alle e-mails. Hav tålmodighed.</li>"
response.write "</ul>"
'udskriver emails på mailinglisten.
'Sættes til false, hvis de ikke skal udskrives.
show = true

dim email

if show = true then
    sql ="select * from mailingliste"
    set maildb = conn.execute(sql)
   
    arrEmail = maildb.getrows()

    maildb.close
    set maildb  = nothing

    response.write "<p>"

    For num = 0 to Ubound(arrEmail,2)
        email = trim(arrEmail(2, num))
        response.write email & "<br>"
    next
   
    response.write "</p>"
   
end if

conn.close
set conn = nothing


' Her sendes e-mailen
if request.form("mode") = "send" then 'hvis der er trykket på send

    dim send, jmail
    dim besked, tekst, respons, kontakt, fjern, header, bodytekst

    %>
      <!-- #include file="../conn/nyhedsbrev.inc" -->
      <%

    SQL = "SELECT * from mailingliste"
    set send = conn.execute( SQL )
   
    arrEmail = send.getrows()

    send.close
    set send=nothing

    conn.close
    set conn=nothing
   
   
    besked= trim(replace(request.form("tekst"),"'","''"))
       
    tekst = besked & vbCrLf & vbCrLf
    respons = respons + "---------------------------------------------------"& vbCrLf & vbCrLf
    respons = respons + "                  R E S P O N S"& vbCrLf
    respons = respons + "Jublen vil ingen ende tage hvis du bruger et øjeblik på at fortælle os, hvordan vi kan blive bedre:"& vbCrLf
    respons = respons + "http://www.legestue.net/feedback.asp"& vbCrLf & vbCrLf
    respons = respons + "---------------------------------------------------"& vbCrLf & vbCrLf
    kontakt = kontakt + "---------------------------------------------------"& vbCrLf & vbCrLf
    kontakt = kontakt + "        K O N T A K T I N F O R M A T I O N"& vbCrLf
    kontakt = kontakt + "Nyhedsbrevet fra Fodboldens Legestue er gratis. Nyhedsbrevet udgives af Fodboldens Legestue:"& vbCrLf
    kontakt = kontakt + "http://www.legestue.net/kontakt.asp"& vbCrLf & vbCrLf
    kontakt = kontakt + "---------------------------------------------------"& vbCrLf
       
    header = trim(replace(request.form("header"),"'","''"))
   
    ' her starter løkken til at sende e-mails
    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>Errornumber: " & Err.number & "<br>Errordescription: " & Err.description & "</p>"
                end if
            Else
                response.write "<br>E-mail er sendt til: "& email
            end if
           
            err.Number = 0   
       
        Next ' loop

    JMail.close
    set JMail = nothing
   
end if



%>
Avatar billede ares Nybegynder
09. januar 2003 - 21:02 #1
Sådan som koden ovenfor er opbygget sender den en e-mail af gange. Så er der en af de adresser du har i din database der ikke er en korrekt e-mail vil den stoppe.

Jeg kan ikke huske om der er en "on error resume next" ting i jmail tjek evt.
http://tech.dimac.net/

Men den bedste metode er at have et stykke kode der tjekker om en e-mail adresse er korrekt opbygget, i det øjeblik den lægges ned i databasen.

MVH

Ares alias Peter@TheStringSite.com
http://www.TheStringSite.com/
Avatar billede lsolesen Nybegynder
09. januar 2003 - 21:13 #2
Det har jeg. Men den accepterer test@test.dk, og det gør JMail ikke!
Avatar billede lsolesen Nybegynder
09. januar 2003 - 21:16 #3
Den stopper heller ikke, men skriver at resten af e-mails er sendt, men det er de ikke. Er det Jmail, der stopper?
Avatar billede lsolesen Nybegynder
18. maj 2003 - 09:14 #4
Har ikke fundet en løsning, så jeg lukker spørgsmålet nu.
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