|
| Array og Loop med JMail ? Fra : Jakob Munck |
Dato : 27-05-02 19:49 |
|
Jeg skal udsende e-mails til medlemmer af et community, men der går noget
galt. Jeg selecter først fra én tabel og omdanner dennes indhold til et
Array. Derefter skal jeg bruge de id-numre, der er i en af Arrayets
dimensioner til at udvælge de relevante e-mail adresser fra en anden tabel.
Som koden fungerer nu, sender den kun til én record fra tabellen, selv om
den faktisk skulle udvælge flere. Jeg mangler vist at skrive noget i retning
af
"for i=0 to ubound(arrRecords,2)"
men hvis jeg indsætter denne linie kommer jeg vist til at blande en
for-løkke sammen med et loop, og det kan vist ikke lade sig gøre.
Jeg er temmelig usikker både på Arrays og på forskellen mellem forskellige
former for Loops, så jeg har problemer. Er der nogen der har et godt bud på,
hvad der skal gøres ved koden for at den både sender til de udvalgte e-mails
og bagefter lister dem?
Her er koden:
<%
.......
' her laver jeg et recordset der indeholder alle gruppemedlemmer:
SqlTable = "select * FROM tbGruppemedl WHERE gruppeId = " &
session("gruppeId")
Set RS3 = Conn.Execute(sqlTable)
' her sætter jeg dette recordset ind i et Array:
arrRecords = RS3.getrows()
' her udvælger jeg emailadresser for de id-numre der er i Arrayet:
SQL = "SELECT * from bruger WHERE brugerId = " & arrRecords(2,i)
set RS = conn.execute( SQL )
do while not RS.eof
on error resume next
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "mail.tele.dk"
JMail.Charset = "iso-8859-1"
JMail.ContentTransferEncoding = "8bit"
JMail.Sender = "GruppeLeder@topdating.dk"
JMail.Subject = request("header")
JMail.AddRecipient RS("email")
JMail.Body = request("tekst")
JMail.Priority = 3
JMail.Execute
set JMail = nothing
' her laves en liste over de e-mail adresser der er blevet sendt til:
response.write "<FONT FACE='Arial' SIZE='2' COLOR='#000000'><STRONG>E-mail
er sendt til : "& RS("email") &"</STRONG></FONT><BR>"
RS.movenext
loop
conn.close
......
%>
v.h.
Jakob Munck
| |
Jakob Andersen (27-05-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 27-05-02 20:04 |
|
"Jakob Munck" <jakob.munck@tdcadsl.dk> wrote in message
news:3cf27ba9$0$70441$edfadb0f@dspool01.news.tele.dk...
> Jeg skal udsende e-mails til medlemmer af et community, men der går noget
> galt. Jeg selecter først fra én tabel og omdanner dennes indhold til et
> Array. Derefter skal jeg bruge de id-numre, der er i en af Arrayets
> dimensioner til at udvælge de relevante e-mail adresser fra en anden
tabel.
Afhængig af din database, jeg mener at huske du bruger Access, kan det
klares med en SQL.
> SqlTable = "select * FROM tbGruppemedl WHERE gruppeId = " &
> SQL = "SELECT * from bruger WHERE brugerId = " & arrRecords(2,i)
Prøv at leg med denne
SELECT
Email
FROM
bruger
WHERE
BrugerId IN
(SELECT
BrugerID
FROM
tblGruppemedl
WHERE
gruppeId = " & intGruppe & ")
--
Jakob Andersen
| |
Jakob Munck (27-05-2002)
| Kommentar Fra : Jakob Munck |
Dato : 27-05-02 23:14 |
|
Du har bare ret igen. Det virker. Tusind tak !
v.h.
Jakob Munck
| |
Morten (28-05-2002)
| Kommentar Fra : Morten |
Dato : 28-05-02 10:28 |
|
>JMail.Body = request("tekst")
Må jeg lige understrege at Microsoft på det kraftigste fraråder brugen
af Request alene, medmindre det er abolut nødvendigt og der ikke er
andre udveje. Problemet er, at hvis der ikke er angivet en værdi så
ender den med at lede efter værdier i Request.ServerVariables som er
utrolig processorkrævende.
Brug i stedet Request.Form/QueryString.
- Morten
| |
|
|