Formular til asp-formmail - aspmail

Siden er opdateret 13. 12. 2009

Herunder ser du en formular, der fungerer via et asp-script: Når brugere klikker på Send mail, sender formularen det indtastede til et aspscript på serveren. Her sker den videre ekspedition (heri ligger modtagerens emailadresse - bekvemt uden for spamrobotternes rækkevidde).

Vær opmærksom på, at selv om dit webhotel understøtter aspail, kan der være forskellige opsætninger, der gør, at dette script måske ikke virker på netop dit hotel. På et webhotel hos Dandomain er det testet og virker.

Selve formularen er der sådan set ikke meget hokuspokus i:

<form method="get" action="sender.asp">
<fieldset>
<legend>Husk at udfylde alle felter</legend>

<span style="display:none">
<label for="subject">Subject</label>
<input type="text" id="subject" name="important" size="32" /><br />
</span>

<label for="f1">Emne</label>
<input id="f1" type="text" name="emne" size="32" /><br />

<label for="f2">Navn</label>
<input id="f2" type="text" name="navn" size="32" /><br />

<label for="f3">Email-adresse</label>
<input id="f3" type="text" name="mail" size="32" /><br />

<label for="f4">Besked</label>
<textarea id="f4" name="besked" cols="32" rows="4"></textarea><br />

<label for="subm">&nbsp;</label>
<input id="subm" type="submit" value="Send" />&nbsp;
<input type="reset" value="Slet" />

</fieldset>
</form>

Læg mærke til denne kodesekvenns:

<span style="display:none">
<label for="subject">Subject</label>
<input type="text" id="subject" name="important" size="32" /><br />
</span>

Der er tale om et skjult inputfelt, et felt der ikke må skrives i. En spambot bemærker ikke, at feltet med css er blevet skjult for almindelige brugere og fylder bare indhold i feltet.


Scriptet, der kaldes af formularen, er øverst i formularen defineret til at hedde sender.asp. Scriptet forudsætter, at dit webhotel foruden asp også understøtter funktionen aspmail.

Scriptet herunder lægges mellem <body> og </body>sender.asp:

<%
//'tjek, at der ikke er skrevet i det fobudte felt
Message = Request("important")
If Not Len(Message) = 0 Then
//'Der er blevet skrevet i Message, bloker indlægget
Response.Redirect "blokeret.asp"
End If

Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.RemoteHost = "mail.ditdomæne.dk"
Mailer.Recipient = "din@emailadresse.dk"
Mailer.Subject = Request("emne")
Mailer.FromName = Request("navn")
Mailer.FromAddress = Request("mail")
Mailer.BodyText = Request("besked")

Mailer.BodyText = "Følgende er blevet indtastet" & vbCrLf & vbCrLf & "Emne: " & Request("emne") & vbCrLf & "Navn: " & Request("navn") & vbCrLf & "Email-adresse: " & Request("mail") & vbCrLf & vbCrLf & "Besked: " & vbCrLf & Request("besked")

if not Mailer.SendMail then
echo $"Meddelelsen kunne ikke sendes... Fejlen er: <br />
" echo $Mailer.Response
else

echo $"<p>Følgende er blevet indtastet</p><p>Emne: " & Request("emne") & "<br />Navn: " & Request("navn") & "<br />Email: " & Request("mail") & "<br />Besked: " & Request("besked") & "</p><p>Tak for din henvendelse. Jeg vender tilbage så hurtigt som muligt.</p>" end if %>

Læg mærke til scriptets første kodeblok:

'tjek, at der ikke er skrevet i det fobudte felt
Message = upload.Form("Message")
If Not Len(Message) = 0 Then
//'Der er blevet skrevet i Message, bloker indlægget
Response.Redirect "blokeret.asp"
End If

Det er den funktion, som tjekker, at der ikke er blevet skrevet noget i det forbudte felt. Er der skrevet noget, bliver mailen ikke sendt og der sendes i stedet videre til en fejlside.

I scriptets anden blok står der i tredje linje din@emailadresse.dk, det udskifter du med din egen e-mail-adresse. I linjen før skal du angive mailserveren på dit domæne, der hvor der står mail.ditdomæne.dk. De sidste 4 linjer henter data fra formularen. Linjerne 2, 3, 4, 5 og 6 bruges til mailens header.

I scriptets tredje blok samles mailens body af enkeltdelene fra formularen.

Fjerde kodeblok udskriver en fejlmeddelelse, hvis noget ikke fungerer korrekt.

Endelig laver femte kodeblok en svarside, hvor afsenderen kan se, hvad han har sendt - den server, hvor jeg havde lejlighed til at afprøve funktionen, kunne jer ikke få en bcc (Blind Carbon Copy) til at fungere, så afsender har kun dette.


Når brugeren efterfølgende via din mailformular skriver til dig, får han denne besked skrevet ud på en ny webside:

Følgende er blevet indtastet

Emne: Det af brugeren indtastede emne
Navn: Det af brugeren indtastede navn
Email: en_bruger@hansdomæne.dk
Besked: Den af brugeren indtastede besked

Tak for din henvendelse. Jeg vender tilbage så hurtigt som muligt.

På siden står emnet samt afsenders navn og e-mail-adresse + tekst - til han egen orientering.

Bemærk, at ikke på noget tidspunkt kommer en spamrobot i nærheden af din e-mail-adresse.

^ Tilbage til sidens top

Valid XHTML og CSS / Copyright © Hjemmesideskolen januar 2009
Hjemmesideskolen
Du er her: Forsiden - scripts - Formular til asp-formmail
Brugere lige nu: 1
Home Mail