/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Formmail med ASP
Fra : Steffen Holm


Dato : 15-05-04 16:44

Hej NG.

Er helt newbie på ASP området, og jeg skal beklage hvis spørgsmålet er under
lavtmålet for dumhed :)

Jeg har med hjælp fra HTML.dk flækket en formmail sammen. Koderne er her:

Formen:
<form action="sendmail.asp" medthod="post">
<table><tr><td>
Navn:</td><td><input name="Navn"/></td></tr><tr><td>
Email:</td><td><input name="Email"/></td></tr><tr><td>
Besked:</td><td><textarea
name="Besked"/></textarea></td></tr><tr><td></td><td>
<input class="knap" type="submit" value=" Send "
/>&nbsp;&nbsp;&nbsp;<input class="knap" type="reset" value=" Slet "
/></td></tr></table>
</form>

ASP-filen:
<%
Dim objCDO

' CDONTS.NewMail objektet
Set objCDO = Server.CreateObject("CDONTS.NewMail")

' Her sættes afsender adresse
objCDO.From = "afsender@domain.dk"

' Her sættes modtager adresse
objCDO.To = "mail@skibumsen.dk"

' Her sættes overskriften på mailen
objCDO.Subject = "Mail fra caipirinha-design.dk"

' Her sættes selve teksten til mailen
objCDO.Body = "Formmail fra caipirinha-design.dk" & Request.Form("Navn") &
Request.Form("Email") & Request.Form("Besked")

'send mail
objCDO.Send

' Fjern objekt igen
Set objCDO = Nothing
%>

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...

Hvad er der mon galt?

Et link: http://caipirinha-design.dk.nt1.unoeuro.com/kontakt.htm

På forhånd tak for hjælpen.

--
Steffen Holm



 
 
Casper Bang (15-05-2004)
Kommentar
Fra : Casper Bang


Dato : 15-05-04 16:59

> 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.



Steffen Holm (15-05-2004)
Kommentar
Fra : Steffen Holm


Dato : 15-05-04 17:49

"Casper Bang" <webmaster_fjerndette@fjerndette_secretsofwar.net> wrote:

<snip>
En meget god og grundig forklaring.
</snip>

Hej Casper.

Tak for det grundige svar.

Jeg vil kæmpe videre med det.

--
Steffen Holm



Michael Gaardbo Thom~ (12-06-2004)
Kommentar
Fra : Michael Gaardbo Thom~


Dato : 12-06-04 01:53

Hey Casper!

Fin artikel, du har skrevet her...
Jeg har nemlig ledt efter en god artikel om formmail og fandt så denne
tråd...
Jeg har fulgt din artikel og ændret hvor jeg skulle, men har ikke kunnet få
sendt mails med det!!
Jeg får denne fejl:

jmail.SMTPMail error '8000ffff'

The message was undeliverable. All servers failed to receive the message

/fhf/skema.asp, line 43

Jeg bruger Cliché's webhotel, der understøtter Jmail, men ikke tilbyder et
script til formmail...
Nogen der kan hjælpe???

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Casper Bang (12-06-2004)
Kommentar
Fra : Casper Bang


Dato : 12-06-04 17:12

> jmail.SMTPMail error '8000ffff'
>
> The message was undeliverable. All servers failed to receive the message
>
> /fhf/skema.asp, line 43

Denne fejl betyder... at mailen ikke kunne sendes ;) Umidelbart ser det for
mig ud som om at den email adresse du prøver at sende til ikke findes - men
det kan også være fordi du har sat den til en forkert mailserver, eller
måske at mailserveren har et problem?!

Hvis du vil være fri for at der kommer sådanne fejlmeddelser hvis email
adressen du prøver at sende til ikke findes, kan du sætte
jmail.silent = true



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste