Menu
• Indhold

FormMail

FormMail (Copyright 1996-1997 Matt Wright) er etuniverselt cgi script, der gør det muligt at lade en person taste oplysninger i nogle felter på et websted, hvorefter de indtastede oplysninger sendes til en angivet e-mail adresse ved tryk på en knap.
Modtageren af e-mailen har bagefter ikke brug for hverken at lave en udpakning eller lave andre ændringer af mailen for at kunne læse den.

Med FormMail scriptet kan en besøgende på skolens hjemmeside indtaste navn og adresse samt evt. angive et ønske om en brochure, hvorefter de indtastede oplysninger automatisk sendes uden brug af en e-mail klient eller andre programmer. Men det kræver altså at man har en e-mail adresse til at modtage de indtastede oplysninger.
Scriptet stilles gratis til rådighed af Matt Wright, der har lavet scriptet.
» http://www.worldwidemart.com/scripts/.Hvem kan anvende FormMail?

Alle websteder på UNI•Cs webhotel kan anvende cgi-scriptet /zz_cgi/FMproxy.cgi. For at kunne anvende FormMail fordres viden om HTML og specielt lidt kendskab til brugen af <form> tags. Med eksemplet senere i denne tekst som udgangspunkt vil det være muligt at lave en egen formular, der opfylder brugerens krav.

 

Hvordan bruges scriptet på min computer?

Hvis du allerede kender til at bruge <form>tag, er det kun nødvendigt at lære et enkelt nyt tag (input) for at kunne bruge FormMail. Dog vil de fleste nok foretrække en lidt mere avanceret formular, der kræver en række nye tags, der er udviklet til det formål at lave gode funktionelle formularer.

 

Obligatorisk start tags

For at kunne bruge FormMail på hjemmesiden kræveskun ganske få specielle <form> tags. For at scriptet kan udføre den handling "action", der forventes, skal <form> pege på den (fysiske) placering af filen FormMail.cgi på web-serverens hard-disk.
Metoden der skal bruges for at sende formularen som mail er POST (med store bogstaver). Den obligatoriske startkode i form afdelingen bliver:

    <form ACTION="/zz_cgi/FMproxy.cgi" METHOD="POST">

Ovenstående sender "ingenting", der mangler blandt andet oplysninger om, hvor mailen skal sendes til.

 

Modtager (recipient)

Det skal med et input-tag angives, hvor deindtastede oplysninger skal sendes hen. Feltet kaldes "recipient" (modtager).
Det er desuden nødvendigt at alle lovlige værdier af recipient-feltet er nævnt på hver sin linie i filen:

     /home/etc/godkendte-modtagere.txt

Hvis du bruger ftp via en browser, så kan du se denne fil ved at skrive ftp://<bruger>@<din-URL>/./etc

Dette er nødvendigt for at sikre mod at udenforstående bruger dit websted til at sende "spam" til alle mulige.

Input tagget skal se således ud:

    <input type=hidden name="recipient" value="email@your.host.dk">

Teksten:

    email@your.host.dk

skal ændres til DIN modtager, alt det andet skal stå præcis som ovenfor. Det er muligt at sende til flere adresser samtidig - så skrives de efter hinanden adskilt af komma.
Præcis den samme tekst som skrives i value-feltet skal indsættes i filen /home/etc/godkendte-modtagere.txt.
Bemærk at feltet er af typen hidden. Der er ingen grund til, at alle og enhver kan se, hvor disse e-mail ender - eller værre endnu - kan rette i feltets adresseoplysninger.

 

Afsender

Den angivne modtager vil få en mail, der normaltsom afsender har UNI-C (webadm@sektornet.dk).
Ud fra en sendt formular er det altså ikke automatisk muligt at se, hvem der har trykket på send-knappen. Derfor vil man oftest ha' et felt, der beder tasteren om at identificere sig selv.
Det er muligt - men vi fraråder det - at lade tasteren angive afsenderadressen (feltet hedder "email"). Når vi fraråder det, er det fordi formularen slet ikke når frem til modtageren, hvis afsenderadressen ikke er korrekt.
I stedet kan man lave et andet indtastningsfelt (input tag), der hedder noget andet end lige præcis "email" - f.eks. kan det hedde "afsender" - og så bruger man indholdet af dette felt til at svare tasteren. På den måde er det modtageren, der får at vide om afsender-adressen er lovlig.

 

Titel

Det er f.eks. også praktisk selv at kunne angiveen titel på e-mailen til modtageren. Det gør det lettere at filtrere e-mail fra hjemmesiden fra al anden post. Dertil bruges feltet titel (subject). Herunder er vist et eksempel på et sådant input felt, hvor feltet også er gjort til typen hidden.

    <input type=hiddenname="subject" value="Afsendt med FormMail">

Det eneste der skal rettes her er
    Afsendt med FormMail
resten skal indtastes præcis som ovenfor.

 

Kvittering

Hvad skal der stå på skærmen, når formularen ersendt afsted som en e-mail? For at give en slags kvittering på afsendelsen, kan der f.eks vises en ny webside.
Husk URL skal erstattes med en fuldstændig adresse af typen
     http://www.sektornet.dk/kvittering.html.

    <INPUT TYPE="hidden" NAME="redirect" VALUE="URL">

 

Obligatoriske felter

Har du krav om at der skal være indhold i nogleaf felterne inden de sendes? I eksemplet herunder kræves, at der skal stå noget i felterne navn og telefon inden formularen sendes. Eller rettere den kan ikke sendes før der står et eller andet i henholdsvis feltet navn og telefon.

    <INPUT TYPE="hidden"NAME="required" value="navn,telefon">

 

Tomme felter

Alle felter sendes med e-mailen med nedenståendetag, også de hvor felter der ikke er tastet noget i.

    <INPUT TYPE="hidden"NAME="print_blank_fields" VALUE=1>

 

Input felter

Der skal selvfølgelig også være deindtastningsfelter, hvor den besøgende på web-siden kan indtaste sine data. Bemærk, at disse er af typen text. Value behøver ikke være der, men det kan være praktisk med en lille anvisning af, hvad der skal indtastes i feltet:


<INPUT TYPE="text" NAME="navn" VALUE="Indtast dit navn her">


<INPUT TYPE="text" NAME="afsender" SIZE=50 VALUE="mailadresse">
Det er muligt at angive en længde på feltet - som her 50 - ligesom der kan stå en besked i feltet fra starten. Hvis der står mailadresse i feltet fra starten, så ved alle, at her skal der indtastes egen e-mail adresse.
Nedenfor kan telefonnummeret indtastes i et felt med længden 20. Der står "telefon" i feltet fra starten.

<INPUT TYPE="text" NAME="telefon" SIZE=20 VALUE="telefon">
Det er også rart med afkrydsningsknapper. Her skal typen være radio.

Er FormMail let at bruge?

Ja Nej
<H4>Er Formmail let at bruge?</H4>
Ja <INPUT TYPE="radio" NAME="svar" VALUE="Ja">
Nej<INPUT TYPE="radio" NAME="svar" VALUE="Nej" CHECKED>
Ovenstående laver to afkrydsningsfelter til henholdsvis svaret "Ja" og "Nej".
"svar" er ikke tekst, men derimod navnet på feltet.

Her kommer et indtastningsfelt der gør det muligt at indtaste en større besked.
Størrelsen på indtastningsfeltet kan ændres med rows og cols.


<TEXTAREA NAME="Comments" ROWS=5 COLS=40> </TEXTAREA>
 

Det benyttede tegnsæt

Traditionelt har man ikke angivet, hvilket tegnsæt formularen benyttede.
Dette kan give problemer med de danske tegn, hvis man f.eks. skriver sin formular i utf-8-omgivelser.
Nogle browsere reagerer efter hensigten, hvis man i form-delen angiver at man ønsker karaktersættet omsat til iso-8859-1 således:
<form accept-charset="ISO-8859-1" METHOD="POST" ACTION="/zz_cgi/FMproxy.cgi">
Men nu tilføjer vi et input-felt, hvor man kan angive tegnsættet. Eksemplet viser hvad man skal skrive, hvis man bruger utf-8:
<INPUT TYPE="hidden" NAME="content-type" VALUE="text/plain; charset=utf-8; format=flowed">
Scriptet reagerer altså på feltet ved navn "content-type".

 

Tilpasning af formularen

FormMail tilpasses via felter med specielle navne.Nedenstående viser en oversigt over udvalgte muligheder.

  • recipient
    Dette obligatoriske felt giver dig mulighed for at angive modtageradressen for den e-mail, som bliver sendt efter endt udfyldelse af formularen. Normalt er dette felt "HIDDEN", men det er også muligt at lade brugeren selv angive en modtageradresse (dette kan ses i formulareksemplet). Det vil dog kun virke efter hensigten, hvis tasteren skriver een af de lovlige modtageradresser, som står nævnt i filen /home/etc/godkendte-modtagere.txt.

    <INPUT TYPE="hidden" NAME="recipient" VALUE="webadm@sektornet.dk">

  • subject
    Giver dig mulighed for at angive emailens subject. Hvis dette felt udelades vil subject blive "WWW Form Submission".

    <INPUT TYPE="hidden" NAME="subject" VALUE="Svar fra formular">

  • email - brug hellere f.eks. afsender
    Giver brugeren mulighed for at angive sin egen afsenderadresse. Indholdet af dette felt vil blive indsat i emailens From-felt, hvilket vil give modtageren mulighed for at svare for modtagelsen af emailen. Hvis du ønsker at brugeren SKAL indtaste en emailadresse, skal du angive "email" i listen over obligatoriske felter - se under feltet "required".

    <INPUT NAME="email">
    Men BEMÆRK at formularen ikke bliver sendt, hvis AFSENDER-adressen er ulovlig. Så det er bedre at kalde feltet noget andet - og så klippe indholdet af feltet ud af e-mailen, når du ønsker at svare tasteren.

  • redirect
    Dette felt er ikke obligatorisk, men anbefales kraftigt. Her gives der mulighed for at angive hvilket htmldokument, som skal vises efter endt behandling af formularen.

    <INPUT TYPE="hidden" NAME="redirect" VALUE="http://www.sektornet.dk/svar.html">

  • required
    Her gives der mulighed for at angive en liste over felter som skal udfyldes. Hvis ikke brugeren udfylder alle de angivne felter vil brugeren modtage en fejlmeddelelse (se "missing_fields_redirect").

    <INPUT TYPE="hidden" NAME="required" VALUE="afsender,telefon">

  • print_blank_fields
    Normalt vil FormMail ikke inkludere tomme felter i e-mailen, men med dette felt er det muligt at angive at også tomme felter skal med.

    <INPUT TYPE="hidden" NAME="print_blank_fields" VALUE="1">

  • missing_fields_redirect
    Her er det muligt at angive en URL for et html-dokument, som indeholder den fejlmeddelelse brugeren skal have når denne ikke udfylder de felter, som er angivet i feltet "required".

    <INPUT TYPE="hidden" NAME="missing_fields_redirect" VALUE="http://www.sektornet.dk/">

 

Eksempel på formular med Formmail

Alt det der ser ud som det her:
     <!--kommentar -->

er kommentarer, der ikke behøver være der for at få scriptet til at fungere, men som siger lidt om, hvad de forskellige HTML-koder gør.
<HTML>

<HEAD>
<TITLE>FormMail</TITLE>
</HEAD>

<BODY>

<b>FORMMAIL</b>

<!-- FORMMAIL DELEN STARTER HER -->

<FORM ACTION="/zz_cgi/FMproxy.cgi" METHOD="POST">
<!--Her starter Form delen. Hvor ligger FormMail scriptet-->
<INPUT TYPE="hidden" NAME="recipient" VALUE="snet@uni-c.dk">
<!--Hvortil skal e-mailen sendes.
Lige nu sendes den til UNI•C!-->

<INPUT TYPE="hidden" NAME="subject" VALUE="Sendt med FormMail">
<!--Titlen på e-mailen-->

<INPUT TYPE="hidden" NAME="redirect" VALUE="URL">
<!--Erstat med en fuldstændig adresse af typen
http://www.sektornet.dk/kvittering -->

<INPUT TYPE="hidden" NAME="required value="navn,telefon">
<!--Her angives, at felterne navn og telefon er
obligatoriske -required-->

<INPUT TYPE="hidden" NAME="print_blank_fields" VALUE=1>
<!--Alle felter sendes som e-mail,
også de felter der ikke er tastet noget i.-->


<b>Indtast dit for- og efternavn?</b> <!--Ganske almindelig tekst-->

<INPUT TYPE="text" NAME="navn" SIZE=40 VALUE="Dit navn">
<!--Et indtastningsfelt til navn-->

<b>Din e-mail adresse? </b>
<INPUT TYPE="text" NAME="afsender" SIZE=40 VALUE="navn@adresse">

<b>Telefonnummer? </H4>
<INPUT TYPE="text" NAME="telefon" SIZE=20>

<b>Er Formmail let at bruge?</b>
Ja<INPUT TYPE="radio" NAME="formmail-let" VALUE="Ja">
Nej<INPUT TYPE="radio" NAME="formmail-let" VALUE="Nej" CHECKED>
<!--Der kommer til at stå "Er FormMail let at bruge?"
på skærmen.-->

<b>Har du noget at tilføje? </b>
<TEXTAREA NAME="Comments" ROWS=10 COLS=50> </TEXTAREA>
<!--Der dannes et stort felt på skærmen,
hvor der kan tilføjes en flerlinjet bemærkning -->

<INPUT TYPE="submit" VALUE="Send">
<!--Knap med teksten Send.
Knappen sender naturligtvis også det indtastede-->

<INPUT TYPE="reset" VALUE="Fortryd">
<!--Knap der sletter hvad der måtte stå i felterne-->

</FORM>
<!--Form-delen slutter her-->

</BODY>
</HTML>

 

Sådan ser FormMail ud på skærmen

Koden minder en del om eksemplet ovenfor - men er ikke helt magen til.

Indtast din egen e-mail adresse, så du kommer til at stå som modtager.

Normalt skal dette felt være af typen HIDDEN.


Indtast dit for- og efternavn?


Din e-mail adresse?


Telefonnummer?


Er Formmail let at bruge? Ja Nej

Har du noget at tilføje?