webForumDet fria alternativet

nyhetsbrev "Jmail"

ASP

5 svar · 402 visningar · startad av nille99

Medlem sedan aug. 2002352 inlägg
Frågan#1

jag har ett funkerade nyhetsbrev i "Jmail"

man markerar antal adresser och dom får nyhetsbrev

hur gör jag för att få deras namnet i själva msg.Body

jag har en while saats över msg.Body
där får jag deras email och namn

msg.AddRecipientBcc rs("email")
namn= rs("namn")

men nu får alla den sista personens namn iställe för deras egna namn

Medlem sedan feb. 200112 078 inlägg
#2

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?

Medlem sedan aug. 2002352 inlägg
#3

jag får felet

Objektet stöder inte egenskapen eller metoden.: 'mail.to'

Medlem sedan feb. 200112 078 inlägg
#4

Jag skrev:

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
Medlem sedan juni 200032 967 inlägg
#5

Det skall dock inte vara något = efter addrecipient, eftersom addrecipient inte är en egenskap, utan en metod i komponenten.

Medlem sedan feb. 200112 078 inlägg
#6

Korrekt, @nders. Tackar! :)

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)