Avatar billede 200 Nybegynder
27. august 2003 - 20:25 Der er 19 kommentarer og
1 løsning

ASP script til JMail-formular

Har brug for en formular, som kan sende mail direkte fra en hjemmeside. Det skal være så enkelt som muligt.
Måske bare felter til afsenderens navn og mailadresse.


Jeg har ikke den store erfaring med ASP, men har fået anbefalet at bruge JMail. Tænkte - at der måske findes "komplet" kode på et dansk site. Ville høre om nogen har erfaring, som kan anbefales.
Avatar billede netro Nybegynder
27. august 2003 - 20:44 #1
JMail er ganske fortrinligt. http://www.opfinderen.dk/sites/?id=14
Avatar billede 200 Nybegynder
27. august 2003 - 21:53 #2
Tak til netro, ku jeg få lidt mere hjælp. Jeg kan f.eks. ikke finde ud af hvor jeg skal sætte <form> og hvilke andre ting, som kræves. Der kommer ikke nogen fejlmelding, men der sker heller ikke noget :)

Koden:

<%
Set JMail = Server.CreateObject("JMail.SMTPMail")

JMail.SenderName = "Afsenders navn"
JMail.Sender = "afsender@domaene.dk"
JMail.AddRecipientEx "modtager@domaene.dk", "Modtagers navn"
JMail.Subject = "Overskrift"
JMail.Body = "Besked"

'Mailserver
JMail.ServerAddress = "mail.domaene.dk"

'Her angives modtager af kopi (valgfrit)
JMail.AddRecipientCC "modtager2@domaene.dk"
'Her angives modtager af blind kopi (valgfrit)
JMail.AddRecipientBCC "modtager3@domaene.dk"

'Her angives prioriteten: 1=høj, 3=normal/standard, 5=lav (valgfrit)
JMail.Priority = 1
'Her angives tekstformatet: text/plain (standard), text/html (valgfrit)
JMail.ContentType = "text/plain"
'Her angives mailformatet: US ASCII, ISO-8859-1/standard (valgfrit)
JMail.Charset = "ISO-8859-1"

'Her angives en URL til en fil, der skal vedhæftes (valgfrit)
JMail.AddURLAttachment "http://www.domaene.dk/fil.jpg", "nytfilnavn.jpg"

JMail.Execute

JMail.Close
Set JMail = Nothing
%>
Avatar billede keysersoze Guru
27. august 2003 - 22:36 #3
http://www.duplo.se/

her er producenten af jmail - der er lidt forskel på de forskellige versioner af jmail så derfor kan der ikke "bare" gives en kode, men herinde kan du i hvert fald finde færdige eksempler både med selve mail-delen samt med form-delen
Avatar billede netro Nybegynder
28. august 2003 - 01:18 #4
Du skal huske at angive adressen på mailserveren hos din udbyder og selvfølgelig modtager, afsender og overskrift.

En side kunne f.eks. se sådan ud (design og validering må du selv stå for):

<html>
<head>
</head>
<body>

<form method="post" action="din_side.asp">
Navn: <input type="text" name="navn"><br>
E-mail: <input type="text" name="email"><br><br>
Besked:<br><textarea name="besked"></textarea><br><br>
<input type="submit" value="Send mail">
</form>

<%
If Request.ServerVariables("Request_Method") = "POST" Then

  Set JMail = Server.CreateObject("JMail.SMTPMail")
  JMail.ServerAddress = "mail.domaene.dk"

  JMail.SenderName = Request.Form("navn")
  JMail.Sender = Request.Form("email")
  JMail.AddRecipientEx "din@mailadresse.dk", "Dit navn"
  JMail.Subject = "Mail fra min side"
  JMail.Body = Request.Form("besked")

  JMail.Execute

  JMail.Close
  Set JMail = Nothing

  Response.Write "<br><br>Din e-mail er nu afsendt!"

End If
%>

</body>
</html>
Avatar billede 200 Nybegynder
28. august 2003 - 02:41 #5
Den vil ikke, om det er formular-delen eller andet kan jeg ikke finde ud af.
Det eneste sikre er at JMail fungerer, den sender automatisk, når jeg loader koden fra 27/08-2003 21:53:17 :)
Avatar billede netro Nybegynder
28. august 2003 - 05:54 #6
Du må komme med en fejlmeddelelse, hvis jeg skal kunne hjælpe dig (hvis der er en). Ser på det lidt senere. Har ikke tid nu...
Avatar billede 200 Nybegynder
28. august 2003 - 20:04 #7
Der kommer ikke nogen fejlmelding, med denne:

<form method="post" action="Mail2.asp">
Navn: <input type="text" name="navn" size="20"><br>
E-mail: <input type="text" name="email" size="20"><br><br>
Besked:<br><textarea name="besked" rows="1" cols="20"></textarea><br><br>
<input type="submit" value="Send mail">
</form>

<%
If Request.ServerVariables("Request_Method") = "POST" Then

  Set JMail = Server.CreateObject("JMail.SMTPMail")
  JMail.ServerAddress = "192.168.0.2"

  JMail.SenderName = Request.Form("navn")
  JMail.Sender = Request.Form("email")
  JMail.AddRecipientEx "test@test.fo", "Dit navn"
  JMail.Subject = "Mail fra min side"
  JMail.Body = Request.Form("besked")

  JMail.Execute

  JMail.Close
  Set JMail = Nothing

  Response.Write "<br><br>Din e-mail er nu afsendt!"

End If
%>

Ku tænke mig, at der måske kun mangler en lille "detalje" :)
Avatar billede keysersoze Guru
28. august 2003 - 20:11 #8
kommer der til at stå "din e-mail er nu afsendt?
Avatar billede netro Nybegynder
28. august 2003 - 20:28 #9
Mail'en bliver sendt til test@test.fo (jvf. dit script). Du skal huske at skrive din egen adresse der selvfølgelig.
Avatar billede 200 Nybegynder
28. august 2003 - 21:29 #10
Ja det var blot et eksempel, mailadressen er ikke noget problem :(
Avatar billede 200 Nybegynder
28. august 2003 - 21:30 #11
Er der andre som har erfaring eller kan teste/korigere
Avatar billede keysersoze Guru
28. august 2003 - 21:43 #12
jeg prøver en gang til...

kommer der til at stå "din e-mail er nu afsendt" på din side?
Avatar billede netro Nybegynder
28. august 2003 - 22:22 #13
Det må være dig, der laver rod i noget, hvis du siger, at JMail-scriptet ellers fungerer på din server. Hos mig virker ovenstående script fint.
Avatar billede 200 Nybegynder
29. august 2003 - 17:33 #14
Undskyld, det tog sin tid
Det virker udmærket, man SKAL bare skrive noget i formular-feltet: e-mail
Det kan måske være webhotellet, som sætter krav :)
Men det må da ku kodes, eller(hvordan)?
Avatar billede keysersoze Guru
29. august 2003 - 17:48 #15
der _skal_ være en afsender - og faktisk er det ulovligt hvis du giver mulighed for at indtaste en afsender som ikke er en selv da man på den måde kan spamme og udgive sig for andre.

Samtidig tvivler jeg på at serveren tillader at afsenderen er en anden end fra en mail der tilhører domænet
Avatar billede 200 Nybegynder
29. august 2003 - 18:37 #16
Måske en misforståelse :)
Mailen skal altid (og kun) sendes til min mailadresse.
Jeg tænkte bare, at det ikke skal være et krav, at man skal skrive noget i formular-feltet e-mail
Er det også umuligt ?
Avatar billede 200 Nybegynder
29. august 2003 - 18:38 #17
Håber det er til at forstå, eller :)
Avatar billede netro Nybegynder
29. august 2003 - 18:47 #18
Email = Request.Form("email")
If Trim(Email) = "" Then Email = "ingen@adresse.dk"

JMail.Sender = Email
Avatar billede 200 Nybegynder
29. august 2003 - 18:49 #19
Som det fungerer nu er det et krav at man skriver noget som indeholder @ i formularens mailfelt.
Og så er det også et problem, at man altid får at vide at mailen er sendt :(
Avatar billede netro Nybegynder
30. august 2003 - 01:02 #20
Så fjern det krav. Hvad kan jeg sige?
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
Kurser inden for grundlæggende programmering

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