> Når jeg tester den på serveren kommer html-dokumentet fint frem, men når
der
> trykkes på "send" får jeg en fejlmeddelelse - HTTP 500...
funktioner > internet indstillinger > avanceret
slå vis venlige http fejlmeddelser fra
du kan nu se hvad fejlen faktisk er.
Ellers har jeg copy/pasted en artikel jeg på et tidspunkt skrev om ASP og
mails fra:
http://www.exp.dk/artikler/22
Man skal vist være logget ind for at se den, så jeg paster den her.
Den er dog lidt mere overskueligt fra exp.dk
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
At sende mails ved hjælp af ASP er relativt nemt.
Der findes mange måder at gøre det på, og mange forskellige programmer på
serveren til at gøre det med.
Mit eksempel tager udgangspunkt i JMail, som er på mange danske udbyderes
mail-hoteller. Andre "plugins" bruger lidt forskellige navne, men er dybest
set det samme. Det burde være relativt nemt at finde et eksempel på dette
fra udbyderens hjemmeside.
Nedenstående eksempel vil med meget små modifikationer virke for dig. Jeg
vil gennemgå det punkt for punkt neden under:
<head><title>Spørgeskema</title></head>
<body>
<%if request.querystring("send") = "" then
'Spørgeskemaet udskrives
%>
<h3>Udfyld venligst dette spørgeskema:</h3><br>
<br>
<form action="test.asp?send=ja" method="post">
Hvad synes du om sidens design?<br>
<input name="design" type="radio" value="Genialt"> Genialt<br>
<input name="design" type="radio" value="Godt"> Godt<br>
<input name="design" type="radio" value="Middel" CHECKED> Middel<br>
<input name="design" type="radio" value="Grimt"> Grimt<br>
<br>
Skriv lidt om hvad du generelt synes om sidens indhold:<br>
<textarea name="indhold" cols="50" rows="10"></textarea><br>
<br>
Indtast din email adresse så vi kan kontakte dig senere:<br>
<input type="text" name="email"><br>
<br>
<input type="submit" value="Indsend Besvarelse">
</form>
<%else
'svaret sendes
design = request.form("design")
indhold = request.form("indhold")
email = request.form("email")
body = email&" har netop besvaret spørgeskemaet."&VbCrLf&"Personen omtaler
designet som "&design&"."&VbCrLf&""&VbCrLf&"Om
indholdet blev skrevet:"&VbCrLf&indhold
set JMail = server.createobject("JMail.SMTPMail")
JMail.serveraddress = "mail.dinudbyder.dk" 'dette er din udbyders mail
hotel. Kontakt dem for adressen.
JMail.sender = email
JMail.subject = "Besvarelse på Spørgeskema"
JMail.AddRecipient "dig@dinudbyder.dk" 'dette er din egen emailadresse
JMail.ContentType = "text/plain"
JMail.body = body
JMail.execute
response.write("Tak for din besvarelse.")
end if%>
</body>
Hvis du selv vil prøve ovenstående, skal filen gemmes som skema.asp, i et
katalog på dit webhotel som understøtter ASP.
I linien med:
if request.querystring("send") = "" then
tjekker vi om det der står i din "querystring" er tomt. Querystringen er det
som står efter ? i en hjemmesides adresse. Hvis "send" i querystringen er
tom, går vi videre efter den IF-sætning. Hvis ikke går vi ned til else.
Linien:
<form action="skema.asp?send=ja" method="post">
er ret vigtigt i forbindelse med forms. En form er når en bruger sender data
direkte til selve serveren.
I den linie siger vi at der skal sendes til siden "skema.asp" (som er den
side brugeren allerede er på), og at attributten "send" i din querystring
skal sættes til "ja."
Method="post" fortæller browseren hvordan data skal sendes. Det forklares
nærmere om lidt.
Linierne:
<input name="design" type="radio" value="Genialt"> Genialt<br>
<input name="design" type="radio" value="Godt"> Godt<br>
<input name="design" type="radio" value="Middel" CHECKED> Middel<br>
<input name="design" type="radio" value="Grimt"> Grimt<br>
giver brugeren mulighed for at vælge mellem 4 forskellige meninger om
designet. Da de alle har samme navn fortæller det
browseren at der skal vælges én og kun én af de muligheder. Ved middel står
der "CHECKED" hvilket betyder at det er den der er valgt til at starte med.
Til sidst i formen er der:
<input type="submit" value="Indsend Besvarelse">
hvilket er den knap som brugere trykker på. Når der bliver trykket sendes de
data som brugere har indtastet videre til serveren.
Efter linien:
<%else
står koden som opretter og sender mailen. Den kode aktiveres først når
brugeren har valgt at indsende spørgeskemaet.
Linierne:
design = request.form("design")
indhold = request.form("indhold")
email = request.form("email")
sætter først variablen "design" til at være lig med indholdet af den
"design" som brugeren sendte. Vi bruger request.form() eftersom vi da vi
oprettede formen brugte method="post".
Vi har du indholdet af de 3 inputs som brugeren lavede, i 3 forskellige
variable.
body = email&" har netop besvaret spørgeskemaet."&VbCrLf&"Personen omtaler
designet som "&design&"."&VbCrLf&""&VbCrLf&"Om indholdet blev
skrevet:"&VbCrLf&indhold
Ovenstående opretter selve mailen. VbCrLf er et linieskift. I HTML ville det
have været <br>, men når man taler om mails er det VbCrLf.
set JMail = server.createobject("JMail.SMTPMail")
I den linie fortæller vi at der skal oprettes et objekt af typen
JMail.SMTPMail. Dette er fordi vi valgte at bruge JMAIL komponenten.
Følgende linie er ret vigtig:
JMail.serveraddress = "mail.dinudbyder.dk"
her fortæller vi hvilken mail-server som skal bruges til at sende mailen.
Dette vil ofte være mail.dinudbyder.dk, men kan dog være andet. Hvis
mail.dinudbyder.dk ikke virker må du kigge lidt på din udbyders hjemmeside,
og se hvad de skriver du skal bruge.
JMail.sender = email
siger simpelt hen hvem der sendte emailen. Her skriver vi at det er emailen
som brugeren tastede ind, som vi bruger som afsender. Dette kunne have være
din egen email, for eksempel:
JMail.sender = "mig@min.dk"
eller lignende.
JMail.subject = "Besvarelse på Spørgeskema"
er emnet på mailen.
JMail.AddRecipient "dig@dinudbyder.dk"
bestemmer HVEM mailen skal sendes til. Hvis den skal sendes til flere
personer kopierer du bare linien flere gange:
JMail.AddRecipient "dig@dinudbyder.dk"
JMail.AddRecipient "mig@minudbyder.dk"
og den bliver sendt til begge to.
JMail.ContentType = "text/plain"
betyder at det er en tekst-email du sender. Dette kunne have været HTML, men
simple emails bruger denne simple metode.
JMail.body = body
i ovenstående linie fortæller vi hvilken variabel der skal bruges som
"brød-teksten" i dit brev. Brevets body.
Vi slutter af med:
JMail.execute
som afsender mailen. Først når den linie bliver kørt, afsendes din email.
Med det afslutter eksemplet, og artiklen, om afsendelse af emails i ASP.
Med de simple metoder kan der laves meget avancerede programmer, som sender
emails på brugerens anmodning.