Avatar billede P48 Nybegynder
21. januar 2010 - 11:00 Der er 15 kommentarer

Formular og mail i ASP

Er der nogen der ved hvordan man laver en formular til aktivering af en asp fil der sender oplysningerne videre med mail?
Den skal bruges som tilmeldingsformular.

Surftown vil ikke hjælpe, men henviser til denne simple form:

html-fil der kalder aspfilen:
<html>
<head><title>Send mig en besked</title></head>
<body>
  <form action="send.asp" method="post">
  <br/>Send mig en besked:<br/>
  <textarea name="body" cols="40" rows="15"></textarea>
  <br/>
  <input type="submit" value="Send">
  </form>
</body>
</html>

Denne simple kode giver et felt med scroll. Jeg har brug for mange (uden scroll), hvor man kan taste sit navn, alder, adresse og tlf.nr. m.m., og derefter få det sendt fra websiden til min mailbox.

Den tilhørende send.asp-fil ser således ud - og den fungerer fint.

<% @ LANGUAGE = VBSCRIPT %>
<html>
<body>
  <%
  set msg = Server.CreateOBject("JMail.Message")

  ' Angiv din afsender-adresse
  ' - den skal være oprettet på webhotellet
  msg.From = "afsender@dit-domaene.dk"
  msg.FromName = "Min hjemmeside"

  ' Tilføj e-mail-adresse og navn på modtageren
  msg.AddRecipient "modtager@dit-domaene.dk", "dit navn"

  ' Angiv et emne for e-mailen
  msg.Subject = "Besked fra min hjemmeside"

  ' Selve teksten (body)
  msg.Body = Request.Form("body")

  ' Send mailen - ved at angive navnet på mail-serveren
  if (not msg.Send("mailout1.surf-town.net")) then
    Response.write "<p>" & msg.log & "</p>"
  else
    Response.write "Mailen er blevet sendt!"
  end if
  %>
</body>
</html>
Avatar billede aburami Nybegynder
21. januar 2010 - 11:07 #1
Skal den være kodet med VB eller C#?
Avatar billede bech1992 Nybegynder
21. januar 2010 - 11:52 #2
<body>
<form method="POST" action="contact.asp">
    <span class="overskrift">Alle felter skal udfyldes</span>
    <p>
        <span class="tekst">Navn:* </span></span>
        <br>
        <input type="text" name="Navn">
        <p>
            <span class="tekst">Telefon:* </span>
            <br>
            <input type="text" name="Telefon">
            <p>
                <span class="tekst">E-mail:* </span>
                <br />
                <input type="text" name="Email" class="tekst">
                <p>
                    <span class="tekst">Besked:*</span>
                    <br>
                    <textarea name="Besked"></textarea>
                    <p>
                        <input type="submit" name="submit" value="Send">
    </form>
</body>
_________________________________________________

Og dette skal i sættes ind i en der hedder contact.asp

<%@ Application Language="C#" %>

<script runat="server">

    void Application_Start(object sender, EventArgs e)
    {
 

    }
   
    void Application_End(object sender, EventArgs e)
    {
   

    }
       
    void Application_Error(object sender, EventArgs e)
    {


    }

    void Session_Start(object sender, EventArgs e)
    {
   

    }

    void Session_End(object sender, EventArgs e)
    {
     
    }
     
</script>
<%

Dim EmailFrom
Dim EmailTo
Dim Subject
Dim Navn
Dim Telefon
Dim Email
Dim Besked

EmailFrom = "NoReply@website.dk"
EmailTo = "DinEmail@hotmail.com"
Subject = "Emne"
Navn = Trim(Request.Form("Navn"))
Telefon = Trim(Request.Form("Telefon"))
Email = Trim(Request.Form("Email"))
Besked = Trim(Request.Form("Besked"))

' validation
Dim validationOK
validationOK=true
If (Trim(Navn)="") Then validationOK=false
If (Trim(Telefon)="") Then validationOK=false
If (Trim(Email)="") Then validationOK=false
If (Trim(Besked)="") Then validationOK=false
If (validationOK=false) Then Response.Redirect("error.htm?" & EmailFrom)

' prepare email body text
Dim Body
Body = Body & "Navn: " & Navn & VbCrLf
Body = Body & "Telefon: " & Telefon & VbCrLf
Body = Body & "Email: " & Email & VbCrLf
Body = Body & "Besked: " & Besked & VbCrLf

' send email
Dim mail
Set mail = Server.CreateObject("CDONTS.NewMail")
mail.To = EmailTo
mail.From = EmailFrom
mail.Subject = Subject
mail.Body = Body
mail.Send

Response.Redirect("ok.htm?" & EmailFrom)
%>

så burde det virke. Dog skal du lige ændre teksten fx. Din email til det rigtige og siden der bliver sendt hen til når beskeden er sendt. i dette tilfælde "ok.htm"

Håber det hjælper lidt
Avatar billede keysersoze Guru
21. januar 2010 - 18:51 #3
1# og 2# - der er stor forskel på ASP og ASP.NET, så de angivne løsning er umulige at bruge i dette setup.

P48 - Den løsning surftown giver er faktisk rigtig, og det vil være en lignende løsning andre webhoteller og også vi her kan give, så du bliver nødt til at komme en smule i gang med kodningen selv hvis det hele skal lykkedes. Fx skal du i stedet for

<textarea name="body" cols="40" rows="15"></textarea>

benytte

<input type="text" name="noget" id="noget />

for at få et simpelt form-felt, og så skal du udvide din msg.Body til at indsamle alle de formfelter du har sat op fx

msg.Body = "linje 1: " & Request.Form("noget") & " linje 2 " & Request.Form("nogetandet")
Avatar billede P48 Nybegynder
21. januar 2010 - 21:25 #4
Hej Jeppe

Tak for svar - jeg kan se at jeg nærmer mig målet,

1. html koden ser fin ud

2. Skal der tilføjes noget i asp-filen, når sproget er C#? <html><body> </html></body> - og hvor skal det i så fald stå i koden?

3. Skal der i denne linie:
Set mail = Server.CreateObject("CDONTS.NewMail")

indsættes adressen på serveren - "mailout1.surf-town.net" i stedet for "CDONTS.Newmail" ?

4. Hvad er koden til startsiden hvor meddelelsen skal dukke op, og hvor skal den stå?

vh Sten
Avatar billede keysersoze Guru
21. januar 2010 - 21:39 #5
Som skrevet i 3# er der forskel på ASP.NET (og dermed C#) og klassisk ASP som dit eksempel går på - sagt med andre ord, du kan slet ikke benytte C# i ASP.

Derfor, hold dig til det eksempel du selv kom med, men tilpas html'en (evt som foreslået i 2#) og så er det absolut eneste du skal ændre din msg.Body.
Avatar billede P48 Nybegynder
21. januar 2010 - 22:11 #6
Hej keysersoze

Der kommer ikke send knap med - kig der www.linbutton.dk/send.html = den oprindelige
www.linbutton.dk/soze.html = din med linien udskiftet

vh Sten
Avatar billede bech1992 Nybegynder
21. januar 2010 - 22:21 #7
P48

en asp siden skal være på samme måde som en html side. altså der skal være:
<html>
<title>Min side</title>
<body>
lalala tekst.. bla. det script jeg gav dig, dog skal "<%@ Application Language="C#" %>" bare slettes:)


</body>
</html>
gem som "navn.asp" og wuti, så har du en asp side.
har dog ikke testet om det script jeg gav dig virker, da jeg normalt laver dem i php. og asp.net (.aspx)

men hold dig til keysersoze så skal du nok få det til at virke :)
Avatar billede keysersoze Guru
21. januar 2010 - 22:23 #8
Det er fordi jeg - og du - mangler et lille tegn;

<input type="text" name="noget" id="noget" />
Avatar billede P48 Nybegynder
21. januar 2010 - 22:42 #9
Hej Soze

det " burde jeg selv have set - undskyld!

www.linbutton.dk/soze.html har nu to linier, men det virker ikke.

her er koden på send.asp

<% @ LANGUAGE = VBSCRIPT %>
<html>
<body>
  <%
  set msg = Server.CreateOBject("JMail.Message")

  ' Angiv din afsender-adresse
  ' - den skal være oprettet på webhotellet
  msg.From = "tilmelding@linbutton.dk"
  msg.FromName = "Min hjemmeside"

  ' Tilføj e-mail-adresse og navn på modtageren
  msg.AddRecipient "sten@p48.dk.dk", "Sten"

  ' Angiv et emne for e-mailen
  msg.Subject = "Besked fra min hjemmeside"

  ' Selve teksten (body)
msg.Body = "linje 1: " & Request.Form("noget") & " linje 2 " & Request.Form("nogetandet")

  ' Send mailen - ved at angive navnet på mail-serveren
  if (not msg.Send("mailout1.surf-town.net")) then
    Response.write "<p>" & msg.log & "</p>"
  else
    Response.write "Mailen er blevet sendt!"
  end if
  %>
</body>
</html>
Avatar billede keysersoze Guru
21. januar 2010 - 22:51 #10
sørg for at både from og addrecipient er korrekte
Avatar billede P48 Nybegynder
22. januar 2010 - 13:11 #11
Hej Kim

Tak for hjælpen - det virker og også med rigtig mange felter.
------------------
Jeg ved ikke om du orker flere spørgsmål.

Når mailen kommer retur sker det uden linie skift.
Jeg har prøvet forskelligt uden held.

Til slut kunne jeg godt tænke mig en Response.Redirect tilbage til siden man kom fra. Her skal meddelelsen komme op i stedet.

Jeg forsøgte med koder der virker på en anden side i asp, men desværre gik mailen i selvsving og jeg modtog ca 200 mails!

Tak for din tålmodighed!

vh Sten
Avatar billede keysersoze Guru
22. januar 2010 - 18:24 #12
Linjeskift skal ske med VbCrLf eller et almindeligt html-break, <br>, hvis du sender en html-mail. Du kan læse lidt mere om opsætning af jmail her; http://www.dimac.net/default2.asp?M=Products/MenuCOM.asp&P=Products/w3JMail/start.htm

Hvorfor din side går i selvsving kan jeg af naturlige årsager ikke svare på - men redirecter du brugeren er du nødt til at gemme informationerne et sted hvor de kan fanges igen, fx i en eller flere sessions.
Avatar billede P48 Nybegynder
27. januar 2010 - 13:13 #13
Tak for hjælpen.
Avatar billede keysersoze Guru
27. januar 2010 - 22:16 #14
Jeg lægger et svar så spørgsmålet kan lukkes.
Avatar billede keysersoze Guru
05. april 2010 - 11:42 #15
lukketid?
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