|  | 		    
					
        
         
          
         
	
          | |  | 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
 
 
 |  |  | 
 |  |