Avatar billede mmmtm Nybegynder
15. maj 2003 - 17:41 Der er 8 kommentarer og
1 løsning

Formmails i Notes

Vi har et (web)intranet, der er opbygget rimeligt "simpelt". Redaktørerne har alle en klient som de bruger til oprettelse/redigering.. De kan oprette sider under deres afdeling ved blot at udfylde et titelfelt og et (rich text) indholdsfelt, samt vælge hvilke (faste) menupunkter siden skal ligge under som undermenupunkt.
Visse afdelinger har et stort ønske om at kunne lave deres egne spørgeskemaer o.lign. Som regel har disse en redaktør, der i forvejen kender til html og dermed formmails - og vil derfor gerne lave disse. Redaktørerne kan via "[]" tilføje den html de ønsker, og det er heller ikke noget problem at kode og sende dem en knap, som de kan tilføje på deres formmails sider. Men jeg er i tvivl om hvordan de bedst modtager de feltdata de har i deres formmails. Når jeg koder knappen, kan jeg jo gøre det udfra deres formmail, så de blot modtager alle felter i bodyfeltet i en mail. Umiddelbart overvejer jeg også at inddrage mail-in databaser i projektet - men eftersom at det stadig er i idéfasen, vil jeg godt høre div. gode bud/kommentarer på hvordan det evt. kan gribes an...samt om evt. færdige produkter. Jeg har bla. hørt om programmer der kan lave spørgeskemaer og generere en .swf (flash) fil, som muligvis kan ovst. ?
Avatar billede mmmtm Nybegynder
15. maj 2003 - 17:43 #1
..bliver lige nødt til at tilføje at jeg mener at "Formmails" burde være en fyldestgørende overskrift, når nu kategorien er Domino/Notes - men den gik ikke! ("overskriften er ikke beskrivende nok!" :-)
Avatar billede jogii Nybegynder
19. maj 2003 - 10:51 #2
Hej mmmtm

Hvordan kommer "mail" ind i billedet?
Normalt ville DU lave en database med en formular, som skal udfyldes og "submittes". Dette resulterer i et dokument i databasen. "Default"-sikkerheden på databasen sættes til "Depositor", så brugere som standard ikke kan se svarene fra andre.

Når det er redaktørene selv der skal designe "spørgsmålene" og "svarmulighederne" så er standard metoden at denne formular bygges op dynamisk ud fra "spørgsmål-metadata", som redaktøren kan vedligeholde. Det er det de fleste "spørgeskemasystemer" understøtter. Jeg har selv lavet flere af denne type.

Hvis du vil lave en mere fleksibel løsning, hvor redaktøren selv kan bestemme alt, vil jeg foreslå at formularen submittes (POST'es) til en agent. Denne agent piller så alle værdier ud af data og gemmer disse seperat, bedst ned i en database.

Dette er de standard metoder jeg kan komme i tanke om. Men hvorfor vil du så gerne have "mail" ind i systemet?

//Jörg
Avatar billede mmmtm Nybegynder
19. maj 2003 - 19:42 #3
Jeg vil have formmail med, fordi de redaktører der hidtil har henvendt sig, gerne vil kunne benytte en formmail, som de kender fra de sider de har lavet og liggende andetsteds (på fx. private sider på webben), og det derfor er umiddelbart anvendeligt uden det store arbejde. Jeg kunne godt lave div. formularer, på normal vis, med de spørgsmål de nu ønsker, men det har jeg ikke ressourser til.
Det ideelle ville klart være opbygning af formularer dynamisk - men jeg er lidt blank på hvordan jeg skal gribe det an - har du evt. et ex. jeg kan lure på ?
Avatar billede jogii Nybegynder
20. maj 2003 - 08:23 #4
Måske er det bare mig der ikke forstår Formmail. Hvilken teknik er det?
Jeg har nogle eksempler, jeg vil lige finde en passende essens til dig.
Avatar billede jogii Nybegynder
20. maj 2003 - 08:43 #5
Jeg har lige søgt på nettet og fundet følgende:
<form action="http://formmail.netsite.dk/formmail.pl" method="post">
Dette svarer til den tredje model i mit oprindelige oplæg. Du kan have en "Un once"-agent i en database og overføre data til den via:

<form action="http://<Server>/<Databasesti.NSF>/<Agent>?OpenAgent" method="post">

Agenten samler data op via:
    Dim session as New NotesSession
    Dim posteddoc as NotesDocument
    Set posteddoc = session.DocumentContext

posteddoc indeholder nu alle de data som er overført. Det er specielt en CGI-variabel Request_Content, som er interesant. Her noget fra dokumentationen:

Request_Content:
Supported only for agents. Contains the data sent with an HTTP POST request. The data is usually "URLencoded," consisting of name=value pairs concatenated by ampersands. For example, FirstName=John&LastName=Doe

Så for at få fat i disse data skal du (i teorien) kode videre med:
    Dim formdata as variant
    formdata = posteddoc.Request_Content(0)
Resten er op til dig. Nu kan du tage disse data og oprette en mail, som sendes til en adresse (som formmail gør det i de pearl-scripts som udbyderne har) eller placere dem i en database som dokumenter.

//Jörg
Avatar billede mmmtm Nybegynder
22. maj 2003 - 19:55 #6
Meget interessant! - men der er vist lige et par ting jeg skal læse lidt på, inden jeg kan spørge videre :-)
Avatar billede mmmtm Nybegynder
22. maj 2003 - 22:39 #7
Lige for at være sikker, inden jeg læser videre:

Med formmail mener jeg fx: http://www.skoledesign.dk/mailus.asp

Din sti/kode: <form action="http://<Server>/<Databasesti.NSF>/<Agent>?OpenAgent" method="post"> - eksekveres ved submit på formularen ?

Agenten samler data op via:
    Dim session as New NotesSession
    Dim posteddoc as NotesDocument
    Set posteddoc = session.DocumentContext - den er jeg med på.

Men - i forhold til den simple udgave - er det jo bare session.DocumentContext jeg vil sende i Body på en mail. Altså formularen med alle dens felter, noget ala at basen indeholder en mailform og body sættes = session.DocumentContext, hvor mailto er defineret på forhånd ?????
Avatar billede jogii Nybegynder
23. maj 2003 - 11:36 #8
Se på skoledesigns kode:
  <form name="form1" method="post" action="mailsend.asp">
Her er der placeret en "agent" i samme bibliotek som mailus.asp ligger. Data bliver overført til IIS. IIS leverer data kodet/behandlet ned til scriptet/agenten mailsend.asp . Inde i mailsend.asp bliver der udført forskellige ting. Det kan være den videresender en mail, det kan være den gemmer data i en database. Det kan man ikke se udefra.

<form action=<URL> method="post"> er en anvisning til browseren om hvorhen den skal stile en evt. "Submit". Det er op til den modtagende web-server om at samle data sendt via en submit sammen og stille det påpgældende script til rådighed. Det kunne være spændende at se hvordan en webserver opfører sig når man sender data til en grafikfil, f.eks.:
  <form name="form1" method="post" action="dummy.gif">

Hvis du bare råt vil sende alle data der ligger på et dokument kan du bruge

Forall i In posteddoc.Items
  print i.Name & " = " & i.Text
End Forall

Men pas på. Det kan være farlig mange data. Hvis du kun er interesseret i de form-data (inputfelter), som dine redaktører laver, så er det bedst at bruge CGI-variablen posteddoc.Request_Content(0)
//Jörg
Avatar billede mmmtm Nybegynder
23. maj 2003 - 21:29 #9
Jeg har vist - indtil videre fået svar nok til eftertanke - og du har da ihvertfald svaret rigeligt til pointene!.
Men der kommer helt sikkert et spørgsmål i fortsættelse af ovst. - takker for nu.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester