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 %>
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
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
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 %>
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
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.
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?
18. september 2005 - 12:23
#6
i hvilken linie?
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.
18. september 2005 - 12:28
#8
"i hvilken linie?" rs2.moveFirst()
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?
18. september 2005 - 17:45
#10
Det her bliver vist kun til en diskussion med mig selv?
23. september 2005 - 17:31
#11
Lukker spm.
Kurser inden for grundlæggende programmering