26. oktober 2001 - 12:40Der er
16 kommentarer og 2 løsninger
Avanceret Jmail spørgsmål
Jeg har denne side med en form på. Formen bliver postet til en database, i bunden af siden er der jmail som sender en mail til en eller flere bruger om at der er postet noget til databasen.
Jeg vil gerne havde flettet ind i min Jmail funktion at den undersøger om der er krydset af ud for nogle bestemte felter, er der fx hacket af ud for AR så skal den sende til AR, er der hacket af ud for AR og AB så sender den til AR og AB.
Hvordan gør jeg det ? er det noget med at jeg skal loope Jmail funktionen eller ?
På din form side kan du bygge checkbox fra en database tabel. Tabellen kan indeholder ID, email, brugernavn (AR,AB). Så laver du et loop som udskriver alle checkboxse I dette format:
Den side Form\'en sender til skal så hendte ID\'er fra checkboxene:
strIDsendtil = Request.Form(\"sendtil\") \' strIDsendtil indeholder ID på alle den du har valgt at sende til via checkboxne.
sql = \"SELECT * FROM persondata WHERE ID IN (\" & strIDsendtil & \");\"
set sender = conn.execute( SQL ) \'Ny har du et recordset med alle dem du skal sende til. Du kan loope gennem recordsetet
Hvis der er JMail kan du benytte do while not send.EOF Mailer.AddRecipientBCC send(\"email\") send.Movenext loop
Hvis du bruger BCC er ser modtageren kun han selv som modtager og ikke 200 andre. Husk på der er en fejl i Jmail som gøre at den kun kan send 20 mail af gangen.
eagleeye >> jeg vil ikke påstå at din metode er optimal. Hvis man allikevel skriver ut sine data ( til checkboxes) fra en database, hvorfor skal du så dykke ned i databasen enda en gang ved avsendelse av mailen ?? Du har jo fatt i de data når du skriver dem ut, så hvorfor ikke legge email adressen som value på checkboxen. Et ekstra dykk ned i databasen koster hvis det er snakk om mange mottakere...
Nu er der kun 2 checkbokse i mit eksempel og dette kan virke misvisende, i virkeligheden er der mere end 20 bokse, og skulle den tjekke op på hver boks, ville det give en elendig svartid for brugeren hver gang den skal undersøge om et felt er krydset af nede i databasen.
Jeg er gået igang med at kigge på jeres eksempler og vender tilbage i løbet af dagen.
Nute>> Jeg mener at din løsning ikke er optimal man skal jo skrive alle email adresser I HTML selv. Ikke nok med det men email adresserne bliver så frit tilgængelige for alle. Derfor ID. Men der er tilladt at lave om I koden hvis nu han hellere vil skrive email adressen I value feltete.
Det giver let mulighed for at rette/tilføje bruger som skal havdee mulighed for at få en mail. Ren HTML-kode det er let at overskue at lave det med 2 mail adresser men hvis du har 50 er det mere uoverskueligt at lave I ren HTML, derfor forslår jeg en databse løsning hvor checkboxsene bliver lavet I asp koden.
Man har en tabel som indeholder de oplysninger.
Tabel: beskedliste ID email brugernavn 1 ar@email.dk ar 2 ab@email.dk ab
det bliver til <input type=\"checkbox\" name=\"sendtil\" value=\"1\">AR <input type=\"checkbox\" name=\"sendtil\" value=\"2\">AB
--------
\'Den side form sender data til: Opdater databasen med data fra form som normalt.
Send en mail til de valgte person fra beskedlisten
strIDsendtil = Request.Form(\"sendtil\") \' strIDsendtil indeholder ID på alle den du har valgt at sende til via checkboxne. Eks strIDsendtil = 1,2
\'Så hendter man email adrsserne på dem som skal havde besked:
sql = \"SELECT * FROM brugerliste WHERE ID IN (\" & strIDsendtil & \");\" set send = conn.execute( SQL ) \'Ny har du et recordset med alle dem du skal sende til. Du kan loope gennem recordsetet
\'fylder data I den mail som skal sendes. Mailer.body = \"hej der er lagt nye data I databasem\"
\'fylder modtagere I mailen. do while not send.EOF Mailer.AddRecipientBCC send(\"email\") send.Movenext loop
( noe som jeg mener ikke er en dårlig ting. Jeg ville heller lagt emailadressene som value. )
deretter dykker du ned i databasen igjen her:
sql = \"SELECT * FROM persondata WHERE ID IN (\" & strIDsendtil & \");\"
det stod ikke noe sted i spørsmålet at man var nødt til å liste adressene ut fra en database. Hvis adressene endrer seg mye, seå er selvfølgelig det en god ide. Jeg er *ikke* imot å liste ut fra database, og det var heller ikke dét jeg skrev i mitt innlegg. Jeg kommenterte at det ikke var optimalt å dykke ned i db 2 ganger...en ved utlistning og en ved utsendelse.
man kan selvfølgelig diskutere \"sikkerhet\"...om det er nødvendig å skjule emailadresser fra den som skal sende mailen. Dette står det jo forsåvidt ikke noe om i spørsmålet, og dermed antar jeg at systemet er \"lukket\"...at det ikke er offentlig. Hvis det er offentli, så skal jeg gi deg rett i at man er nødt til å hente adressene fra db\'en når man sender mailen, men dette er noe som jeg oppfatter som utenfor spøørsmålet
jeg har sagt at jeg er enig i at oppgaven kan løses på den måten du har foreslått, men jeg påpeker noen ting ved den kode jeg leser og prøver å komme enten med forslag til forbedring eller for å finne detaljer for å \"drepe\" din kode. Alt for å sørge for at spørsmålstilleren får den beste løsning. Fordi en \"konkurrent\" her inne kommenterer/kritiserer ditt forslaf, så skal du ikke ta det som personlig kritikk !! Jeg har da *aldri* sagt at dine løsninger er dårlige (eller bedre for den saks skyld), men jeg ser noen ganger at jeg har utelatt noe som du (eller andre) har med og vice versa, og at man noen ganger med stor fordel kan merge løsningene.
Jeg prøver å skape en diskusjon omkring koden her inne, ikke rakke ned på andre sin kode. Det får jeg ikke noe ut av, og jeg er heller ikke \"gud\" nok til å kunne gjøre det.
Jeg er helt ening, man kan tit få den bedste løsnign ved at kombinere flere forslag. Han give 250 points så jeg ville da lige vise et alternativ hvor man brugte en database.
En anden fordel jeg ser ved databasen er at man kan tilgå data fra mange forskellige sider, men igen det er op til Cybles at vurdere om det er nødvendigt.
Og om man vælger ID eller email som parameter i et value felt er i første omgang ligegyldigt. Jeg ser fordele og ulemper i begger løsniger og igen er det op til cybles og vurdre hans krav/ønsker.
Cybles spm>>ville det give en elendig svartid for brugeren hver gang den skal undersøge om et felt er krydset af nede i databasen.
Nej den vil gå ned i databasen 2 gange. Første gang når form\'en laves. Anden gang på siden hvor emailen sendes. Det er ligegyldigt om du har 2 eller 200 chechkboxe. Det er det ID bruges til at fortælle hvilke email adresse som blive hendtet ud på en gang. Som Nute skriver kan man i value ligge email og undgå anden læsning fra databasen.
jeg tror nok at vi begge er enige i bunn og grunn, men noen ganger kan gjerne forskjeller i språk skape noe forvirring.
Og hvis det \"trøster\" elelr beroliger deg på noen måte (i sammenheng med eventuelle fremtidige \"uoverenstemmelser\", misforståelser eller konflikter...jeg har sett dine løsninger som fornuftige og gode, og jeg har *ingen* intensjoner om å lure andre folk til å tro at du er en skod-koder. I mine øyne er du ikke det. Jeg vil bare vende noen kommaer om til punktum for å sørge for at den som stiller spørsmålet får den beste løsning.
Ok jeg har prøvet begge ting, men helt ærligt jeg fatter sgu ikke ret meget af det :-) men jeg roder videre med det i dag og håber at jeg finder ud af hvor jeg skal plotte det ind.
Hej med dig, hvis jeg nu sender siden til dig, gider du så visse mig hvor det skal plottes ind, jeg tror at jeg sidder og nosser ret kraftigt rundt in det, på trods af jeres ellers så udførlige indstrukser.
Hvordan havde du tænkt det skulle løses, du har vel set/læst vores lille debat :).... Skal checkbox\'ene \"hard-codes\" i HTML eller skal jeg vise en læsning med database?
Mange tak for hjælpen. Det du har lavet har været en meget stor hjælp for mig, og jeg roder selv videre med det nu, men har fået en rigtig god start til selv at komme videre.
Endnu engang mange tak for din meget professionelle hjælp. Da du har lavet en del mere end jeg spurgte efter afsætter jeg også lige lidt flere point.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.