Avatar billede riishoj Nybegynder
18. september 2005 - 11:41 Der er 10 kommentarer og
1 løsning

JMail problem

Mit lille JMail-script skal sende alle beskeder nyere end en bestemt dato til alle på maillisten. Det sender godt nok, men kun den første post i db'en bliver sendt. Hvordan får jeg det til at sende alle posterne som opfylder betingelsen?

StrSQL = "Select * from mailliste"
    set rs = Conn.execute(strSQL)
   
    Dato1 = date()
    minus = "7"
   
    SQL = "SELECT tekst,startdato,id FROM ugebrev WHERE meddeler='" & session("brugernavn") & "' AND startdato>DATE()-"&minus
    Set rs2 = Conn.Execute(SQL)
 

    Do While Not (rs.Eof or rs.Bof)
    Do While Not (rs2.Eof or rs2.Bof)

    strEmail  = rs("email")
   
    strBesked = rs2("tekst")

   
    Set JMail = Server.CreateObject("JMail.SMTPMail")
    JMail.ContentType = ""
    JMail.ServerAddress = "xxx.dk"
    JMail.Sender = "xxx@x.dk"
    JMail.AddRecipientEx "" & strEmail & "", "" & strEmail & ""
    JMail.Subject = "Ugebrev"
    JMail.Body = "" & strbesked & ""
    JMail.Execute
    Set JMail = Nothing


    response.write "" & strEmail & " - Afsendt korrekt<br>"


      rs.MoveNext
    Loop

    rs2.MoveNext
    Loop

    response.write "<br><br><b>Alle beskeder blev afsendt korrekt.</b>"

    Conn.Close

    %>
Avatar billede busschou Praktikant
18. september 2005 - 11:53 #1
fordi du skal huske at ælave rs2.movefirst til sidst, eller vil den være EOF for alle på nær første gang
Avatar billede busschou Praktikant
18. september 2005 - 11:54 #2
hvis jeg har forstået dig ret så prøv
---
StrSQL = "Select * from mailliste"
    set rs = Conn.execute(strSQL)
   
    Dato1 = date()
    minus = "7"
   
    SQL = "SELECT tekst,startdato,id FROM ugebrev WHERE meddeler='" & session("brugernavn") & "' AND startdato>DATE()-"&minus
    Set rs2 = Conn.Execute(SQL)
 

    Do While Not (rs.Eof or rs.Bof)
    Do While Not (rs2.Eof or rs2.Bof)

    strEmail  = rs("email")
   
    strBesked = rs2("tekst")

   
    Set JMail = Server.CreateObject("JMail.SMTPMail")
    JMail.ContentType = ""
    JMail.ServerAddress = "xxx.dk"
    JMail.Sender = "xxx@x.dk"
    JMail.AddRecipientEx "" & strEmail & "", "" & strEmail & ""
    JMail.Subject = "Ugebrev"
    JMail.Body = "" & strbesked & ""
    JMail.Execute
    Set JMail = Nothing


    response.write "" & strEmail & " - Afsendt korrekt<br>"


      rs2.MoveNext
    Loop
    rs2.movefirst
    rs.MoveNext
    Loop

    response.write "<br><br><b>Alle beskeder blev afsendt korrekt.</b>"

    Conn.Close

    %>
Avatar billede mm12010 Nybegynder
18. september 2005 - 11:56 #3
alle mails sendes til alle modtagere... så skal du jo starte fra begyndelsen af rs2 i det inderste loop, hver gang du begynder et nyt loop i den yderste rs:

    Do While Not (rs.Eof)

    strEmail  = rs("email")   
    rs2.moveFirst()

    Do While Not (rs2.Eof)
    strBesked = rs2("tekst")

    Set JMail = Server.CreateObject("JMail.SMTPMail")
    JMail.ContentType = ""
    JMail.ServerAddress = "xxx.dk"
    JMail.Sender = "xxx@x.dk"
    JMail.AddRecipientEx "" & strEmail & "", "" & strEmail & ""
    JMail.Subject = "Ugebrev"
    JMail.Body = "" & strbesked & ""
    JMail.Execute
    Set JMail = Nothing

    response.write "" & strEmail & " - Afsendt korrekt<br>"

    rs2.MoveNext
    Loop

    rs.MoveNext
    Loop
Avatar billede riishoj Nybegynder
18. september 2005 - 12:12 #4
I begge eksempler får jeg fejlen

ADODB.Recordset error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Avatar billede riishoj Nybegynder
18. september 2005 - 12:23 #5
Alle beskeder som opfylder betingelsen skulle gerne sendes som 1 mail. Det gør scriptet vist ikke nu. Kan det lade sig gøre?
Avatar billede mm12010 Nybegynder
18. september 2005 - 12:23 #6
i hvilken linie?
Avatar billede riishoj Nybegynder
18. september 2005 - 12:24 #7
Meningen er, at forskellige personer skal kunne skrive til et nyhedsbrev, som så bliver sendt én gang om ugen.
Avatar billede riishoj Nybegynder
18. september 2005 - 12:28 #8
"i hvilken linie?" rs2.moveFirst()
Avatar billede riishoj Nybegynder
18. september 2005 - 13:07 #9
Jeg kan godt se, at alle kunne skrive til den samme post med UPDATE , men hvordan får jeg så sat forskellige datoer på de forskellige indlæg?
Avatar billede riishoj Nybegynder
18. september 2005 - 17:45 #10
Det her bliver vist kun til en diskussion med mig selv?
Avatar billede riishoj Nybegynder
23. september 2005 - 17:31 #11
Lukker spm.
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