Avatar billede leasing Nybegynder
23. maj 2006 - 15:36 Der er 7 kommentarer og
1 løsning

Løkke med Jmail

Jeg har lavet en løkke som skal sende mails ud til alle deltagere i en konkurrence.
Nu er der desværre nogle deltagere som ikke har fået mails i et hvilket undre mig lidt.

Er der evt. nogen der kan se om mit script skulle indeholde en fejl?

---------------------------------------------
<%
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & Server.MapPath("db.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.open strDSNSQL = "SELECT * FROM RUNDER ORDER BY rundenr;"
Set rs = conn.Execute(SQL)

Response.write "<form name=opdaterpoint action=sendmails.asp method=post>"
Response.write "Vælg rundenr<br><select name=rundenr class=dropdown>"
Do while not rs.EOF
    Response.write "<option value="&rs("rundenr")&"> Sælgerrunde "&rs("rundenr")&"</option>"
    rs.movenext 
Loop
Response.write "<br><br><input class=Submitknap type=submit value='Send mails' name=opdater></form></tr></td></table>"

If Request.Form("opdater") <> "" Then
    r =  Trim(Request.Form("rundenr"))
    'Sender mails ud til spillere

    SQL = "SELECT * FROM SPILLERE ORDER BY spillernavn"
    Set rs = Conn.Execute(SQL)

    If NOT rs.BOF AND NOT rs.EOF then
      rs.movefirst
      Do while not rs.EOF
        spillernavn = rs("spillernavn")

        mailbesked = ""
        Set JMail          = Server.CreateObject("JMail.SMTPMail")
        JMail.ContentType  = "text/html"
        JMail.Logging         = True
        JMail.Silent        = True
        JMail.ServerAddress = "websmtp.domænenavn.dk"
        JMail.Sender        = "robot@domænenavn.dk"
        JMail.Subject      = ""
        JMail.AddRecipient  rs("email")
        JMail.Priority      = 3
        JMail.AddHeader    "Originating-IP", Request.ServerVariables("REMOTE_ADDR")

        if r>2 then
            'Rundepoint
            SQL2 = "SELECT SPILLERE.spillerID, POINTS.rundeNr, Sum(POINTS.point) AS AntPoint FROM SPILLERE INNER JOIN POINTS ON SPILLERE.spillerID = POINTS.spillerID " & _
                "GROUP BY SPILLERE.spillerID, POINTS.rundeNr HAVING SPILLERE.spillerID="&rs("spillerID")&" AND POINTS.rundeNr="&r
            Set rs2 = Conn.Execute(SQL2)

            'Samlede point
            SQL3 = "SELECT SPILLERE.spillerID, Sum(POINTS.point) AS AntPoint, SPILLERE.placering, SPILLERE.placeringnu " & _
                "FROM SPILLERE INNER JOIN POINTS ON SPILLERE.spillerID = POINTS.spillerID " & _
                "GROUP BY SPILLERE.spillerID, SPILLERE.placering, SPILLERE.placeringnu HAVING SPILLERE.spillerID="&rs("spillerID")
            Set rs3 = Conn.Execute(SQL3)

            'N0 1 point
            SQL4 = "SELECT TOP 1 SPILLERE.forhandlerID, Sum(POINTS.point) AS Antpoint, SPILLERE.spillernavn " & _
                "FROM FORHANDLER INNER JOIN (POINTS INNER JOIN SPILLERE ON POINTS.spillerID = SPILLERE.spillerID) ON FORHANDLER.forhandlerID = SPILLERE.forhandlerID " & _
                "GROUP BY SPILLERE.forhandlerID, SPILLERE.spillernavn ORDER BY Sum(POINTS.point) DESC;"
            Set rs4 = Conn.Execute(SQL4)
            mailbesked = mailbesked & "En masse tekst til deltagerne"

            JMail.HTMLBody = mailbesked
            Jmail.Body = HTMLBody
        end if

        If Not JMail.Execute Then
            Response.Write("ERROR MESSAGE: " & JMail.ErrorMessage & "<br>" & vbCrLf)
            Response.Write("ERROR SOURCE: " & JMail.ErrorSource & "<br>" & vbCrLf)
            Response.Write("LOG: <pre>" & JMail.Log & "</pre>" & vbCrLf)
        End If
        Set JMail = Nothing
        rs.movenext
      Loop
    End if
end if
response.write mailbesked
%>
-------------------------------------------------
Avatar billede meltinis Nybegynder
08. juni 2006 - 11:56 #1
Jeg forstår ikke helt hvad du bruger alle dine queries til... du bruger dem i hvert fald ikke her :)
Derudover så benytter du JMail.AddRecipient  rs("email") - denne er lavet til at du ikke behøver at køre JMail.Execute før all emodtagere er tilføjet.
Men ok... bruger du alle dine queries i din "En masse tekst til deltagerne" så er det vel ok :) MEN så forstår jeg ikke hvorfor du tager mailbeskeden med i 'mailbesked = mailbesked & "En masse tekst til deltagerne"'. Den indeholder ikke noget i forvejen. Mit umiddelbare gæt på hvorfor ikke alle modtager er at der et eller andet sted i din kode opstår en fejl som den skriver ud i Error, men som du evt. ikke ser hvis du efterfølgende laver en Response.Redirect.
Avatar billede leasing Nybegynder
14. juni 2006 - 14:58 #2
Hej meltinis
Jeg har ikke set din besvarelse før nu.
mailbesked indeholder noget i forvejen derfor "mailbesked = mailbesked & "En masse tekst til deltagerne" og alle SQL benyttes i mailbesked. Den udskriver ikke noget i Error. Jeg har prøvet at sætte mig ind som BCC og der fik jeg en mail i alle 90 tilfælde, så man må vil vælge at tro at mails er blevet leveret ik´.
Avatar billede meltinis Nybegynder
14. juni 2006 - 23:14 #3
Ja så lyder det jo som om at det skulle være forkerte emailadresser eller et problem i mailserveren og ikke din kode... jeg må desværre melde pas. Kan du ikke skrive til dit webhotel og spørge efter en udskrift af logfilen?
Avatar billede leasing Nybegynder
15. juni 2006 - 08:52 #4
Det var måske en mulighed med logfilen. Kan man selv lave en logfil med diverse informationer, så man ikke skulle have fat i support ved Azero.dk?
Avatar billede meltinis Nybegynder
19. juni 2006 - 11:08 #5
hmm... det er jo egentlig det du gør med dine errormessages. Men hvis det er sådan at den ikke viser dem - af den ene eller anden grund - kunne du jo skrive dem i en txt-fil og så hente den på serveren bagefter. Du kan også se om der ikke skulle ligge en logfil i én af mapperne på dit webhotel - de ligger ofte i en mappe der hedder log eller _private eller lignende.
Avatar billede leasing Nybegynder
07. juli 2006 - 13:10 #6
nå jeg må hellere lukke spørgsmål.
Tak for dine kommentar...gider du ikke svarer...så er der point.
Avatar billede meltinis Nybegynder
25. juli 2006 - 00:43 #7
Hej igen - undskyld den lange ventetid, jeg har været på ferie :)
Det er ligemeget mht. pointene - hvis bare du skriver en kommentar når/hvis du finder fejlen - det kunne jo være jeg engang røg ind i noget lignede :)

God sommer...
Avatar billede leasing Nybegynder
25. juli 2006 - 08:12 #8
Hvis jeg finder en bug i koden smider jeg den lige her.

Og fortsat go´ sommer til dig også.
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