Eftersom den metoden du använder inte skapar ett mail för varje mottagare, utan skapar ett mail med flera mottagare (Bcc, Background (?) Carbon Copy), kommer givetvis bodyn bli samma för alla som tar emot detta mail.
Du måste loopa igenom alla mottagare, sätta to- och fromadresser + lite annat och dessutom göra en egen body för varje mail, som sedan skickas. Processen upprepas.
Alltså, om man skall visa lite psuedo-kod:
set rs = conn.execute("SELECT * FROM [users] ORDER BY [ID]")
while not rs.eof
set mail = server.createobject("jmail.message")
mail.to = rs("epost")
mail.from = "utskick@domain.com"
mail.body = "Hej " & rs("fornamn") & "!<br>"
mail.send
set mail = nothing
rs.movenext
wend
set rs = nothing
Observera att metoderna to, from, send osv. kanske inte stämmer då jag inte kommer ihåg hur JMails gränssnitt ser ut.
RED. Kanske skulle man kunna flytta ut instansieringen och förstöringen av 'mail' utanför loopen, för att slippa slita igång JMail varje gång runda i loopen. Fungerar JMail så, någon. Finns det någon .reset-metod eller rensas allt efter att .send-metoden anropas?
Observera att metoderna to, from, send osv. kanske inte stämmer då jag inte kommer ihåg hur JMails gränssnitt ser ut.
Efter en vidare koll i manualen såg jag att metoden .clear finns.
Alltså:
set rs = conn.execute("SELECT * FROM [users] ORDER BY [ID]")
set mail = server.createobject("jmail.message")
while not rs.eof
mail.addrecipient rs("epost")
mail.from = "utskick@domain.com"
mail.fromname = "Min webbstjänst"
mail.body = "Hej " & rs("fornamn") & "!<br>"
mail.send("smtp.domain.com")
mail.clear '# rensa
rs.movenext
wend
set mail = nothing
set rs = nothing