Avatar billede pool Nybegynder
03. december 2000 - 13:13 Der er 17 kommentarer og
3 løsninger

send en mail med dynamiske form feldter?

Jeg skal sende en mail fra min shop med vare bestillinger, de bliver genereret dynamisk. Jeg er derfor på jagt efter en slags FormMail script i asp.
Jeg har prøvet dette

<%
For Each ITEM In request.form
        Response.Write ITEM.name & \" \" & ITEM.value   
Next
%>
men det virker ikke for mig, jeg modtager mailen men der er kun den statiske text jeg har skrevet.
Any 1 help please?
Henrik
Avatar billede pool Nybegynder
03. december 2000 - 13:17 #1
PS det hele ligge i en session variable, man kunne måske hente hele arrayet over i mailen?
Avatar billede lange Nybegynder
03. december 2000 - 13:42 #2
Response.write tilføjer jo ikke noget til en mail, men skriver det derimod på websiden.

Det du skal gøre, er at generere en string med hele mailen i, og så sende den - altså noget lignende:

<%
strBody = \"Hej\" & VbNewline
strBody = strBody & \"Du har bestilt: \" & VbNewline

For Each ITEM In request.form
        strBody = strBody & ITEM.name & \" \" & ITEM.value & VbNewline 
Next

strBody = strBody & \"Venlig hilsen\" & VbNewline
%>

...og send så strBody som mail
Avatar billede pool Nybegynder
03. december 2000 - 14:07 #3
<%@ Language=VBScript %>
<%
Dim BestillingsMail
dim strBody

  Set BestillingsMail = CreateObject(\"CDONTS.Newmail\")

    Modtager = \"henrik@loop.dk\"

    BestillingsMail.From = \"loop@net-produktion.dk\"
      BestillingsMail.To = Modtager
      BestillingsMail.Subject = \"Ordre formular\"
      BestillingsMail.BodyFormat
    BestillingsMail.MailFormat

    strBody = \"Hej\" & VbNewline
    strBody = strBody & \"Du har bestilt: \" & VbNewline
        For Each ITEM In request.form
                strBody = strBody & ITEM.name & \" \" & ITEM.value & VbNewline 
        Next
    strBody = strBody & \"Venlig hilsen\" & VbNewline

          BestillingsMail.Send
      Set BestillingsMail = Nothing
%>

<html>Din mail er sendt</html>

dette er asp scriptet jeg kalder i min form submit
men det virker ikke!
Henrik
Avatar billede lange Nybegynder
03. december 2000 - 14:36 #4
Verden bliver så meget nemmere, når folk fortæller, hvad der går galt og ikke bare, at det ikke virker... Er strBody tom, får du en fejlbesked, kører scriptet uendeligt, bliver mailen sendt til den forkerte, eller hvad går galt?
Avatar billede netsrac Praktikant
03. december 2000 - 15:07 #5
Ganske simpelt det er fordi For/Next lyken ikke er bygget rigtigt op.

For Each ITEM In request.form
        Response.Write ITEM & \" \" & request.form(ITEM)
Next

Eller

For Each ITEM In request.form
tmpmail = tnpmail & \" \" & item & \" \" & request.form(ITEM)
Next

Eller noget andet det må du selv om :-)
Avatar billede netsrac Praktikant
03. december 2000 - 15:08 #6
Hov en lille fejl...

For Each ITEM In request.form
tmpmail = tnpmail & \" \" & item & \" \" & request.form(ITEM)
Next

Skulle have været

For Each ITEM In request.form
tmpmail = tmpmail & \" \" & item & \" \" & request.form(ITEM)
Next
Avatar billede netsrac Praktikant
03. december 2000 - 15:24 #7
Dette er alt du behøver skrive :-)
Modtager = \"henrik@loop.dk\"
Afsender = \"loop@net-produktion.dk\"
Subject = \"Ordre formular\"
For Each ITEM In request.form
body = body & \" \" & item & \" \" & request.form(ITEM)
Next

Set objNewMail = CreateObject(\"CDONTS.NewMail\")
objNewMail.Send(afsender, modtager, subject, body, 1)
Set objNewMail = Nothing
Avatar billede pool Nybegynder
04. december 2000 - 14:18 #8
Lange: Hvis der var sket et elle andet ville jeg da have nævnt det! men det virkede bare ikke, ingen fejl meddelser eller noget!
Avatar billede netsrac Praktikant
04. december 2000 - 17:21 #9
Har du prøvet det jeg skrev ??
Avatar billede pool Nybegynder
05. december 2000 - 00:33 #10
netsrac: Ja jeg har prøvet det du skrev uden held?
Som det er nu bruger jeg et FormMail.pl men jeg ville jo gerne have at det hele var i asp. Hvis jeg sætter en statisk tekst ind sender den mailen med teksten, men når det bliver dynamisk så knækker filmen :-(
Her er form scripete

<%
CONST addVareNr = 0
CONST addVareTxt = 1
CONST addVarePris = 2
CONST addVareAntal = 3

IF NOT isArray( Session( \"addV\" ) ) THEN
  DIM localaddV( 4, 20 )
ELSE
  localaddV = Session( \"addV\" )
END IF


%>

<html>
<head><title></title>
<link rel=\"stylesheet\" href=\"styles.css\">
</head>
<body bgcolor=\"#F9E1CD\">
<table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"arial_normal\">
  <tr>
 
    <td width=\"600\">
      <div align=\"center\"><b><font size=\"5\">Din Ordre</font> <br>Husk at køb over 1000.-kr er fragt fri!</b></div>
    </td>
  </tr>
  <tr>
 
    <td width=\"600\"><%
orderTotal = 0
%> <form method=\"post\" action=\"http://www.dht.dk/webhotel/support/formmail/formmail.pl\">

<input type=hidden name=\"recipient\" value=\"henrik@loop.dk\">
<input type=hidden name=\"required\" value=\"Kundenr\">
<input type=hidden name=\"redirect\" value=\"http://www.loop.dk/bestilt.asp\">



      <table  border=1
  cellpadding=4 cellspacing=0 bgcolor=\"#FFFFFF\" bordercolorlight=\"#999999\" bordercolordark=\"#999999\" width=\"100%\" class=\"arial_normal\">
        <tr >
      <th width=\"10%\">VareNr</th>
          <th width=\"60%\">Produkt</th>
          <th width=\"26%\">Pris</th>
          <th width=\"4%\">Antal</th>
        </tr>
        <%
FOR i = 0 TO UBOUND( localaddV, 2 )
IF localaddV( addVareNr, i ) <> \"\" THEN
orderTotal = orderTotal + ( localaddV( addVarePris, i ) * localaddV( addVareAntal, i ) )
%>
        <tr>
          <td><%=localaddV( addVareNr, i )%>
        </td>
          <td> <%=Server.HTMLEncode( localaddV( addVareTxt, i ) )%>
            <input name=\"<%=localaddV( addVareAntal, i )%>stk. <%=localaddV( addVareNr, i )%>\" type=\"hidden\" value=\"<%=Server.HTMLEncode( localaddV( addVareTxt, i ) )%>\">
          </td>
          <td> <%=formatCurrency( ( localaddV( addVarePris, i ) ) )%>
        </td>
          <td>
            <%=localaddV( addVareAntal, i )%>
          </td>
        </tr>
        <%
END IF
NEXT
%>
        <tr>
          <td colspan=2 align=right> <b>Order Total:</b> </td>
          <td> <%=formatCurrency( ( orderTotal ) )%>
          </td> <td>&nbsp; </td>
        </tr>
        <tr>
          <td colspan=3><!-- #include file=\"kunde.asp\" --></td> <td>&nbsp; </td>
        </tr>
        <tr>
          <td colspan=3>
            <table border=0>
              <tr>
                <td align=\"right\">
                  <input type=\"submit\" value=\"Send din bestilling\">
                </td></form>
             
        <td>&nbsp; </td>
              <td>&nbsp; </td>
              </tr>
            </table>
          </td><td>&nbsp; </td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td width=\"600\">
    </td>
  </tr>
</table>
</body>
</html>
Avatar billede pool Nybegynder
05. december 2000 - 00:35 #11
for at gøre det lidt korter så er det i linien
<input name=\"<%=localaddV( addVareAntal, i )%>stk. <%=localaddV( addVareNr, i )%>\" type=\"hidden\" value=\"<%=Server.HTMLEncode( localaddV( addVareTxt, i ) )%>\">
at jeg sender Dynamisk
Avatar billede lange Nybegynder
15. januar 2001 - 12:44 #12
Nej, den nævnte linie sender intet, den danner et hidden formfelt i HTML. Det kan derefter sagtens være, at perl-scriptet sender det felt som en mail, når det modtagere dataene.

Men hvis du stadig har brug for hjælp (beklager den lange svartid), kan jeg så ikke få dig til at paste den del af det genererede HTML, som indeholder varedataene?
Avatar billede pool Nybegynder
07. marts 2001 - 13:32 #13
Lange! du bedte selv om det!!:-)
<script language=\"JavaScript\" type=\"text/javascript\">
<!--
function send()
{

  document.sform.submit() ;
}
function Update ()
{

  document.opdater.submit() ;
}
function printorder()
{
window.print();
}
-->
</script>
<title>Session Shopping Cart</title>
<style type=\"text/css\">
<!--
}
-->
</style>
</head>
<body bgcolor=\"#FFCC7F\" background=\"grafik/b_c_c_cart.gif\" text=\"#000000\" link=\"#000000\" vlink=\"#000000\">
<table width=\"585\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" >

  <tr>
    <td width=\"585\" align=\"center\"> <form method=\"post\" name=\"sform\" action=\"http://www.dht.dk/webhotel/support/formmail/formmail.pl\">

<input type=hidden name=\"recipient\" value=\"alle@mercodan.dk\">
<input type=hidden name=\"required\" value=\"Firma,Adresse,Postnr,By,Bestiller,Tlf,salgs og leveringsbetingelserne\">
<input type=hidden name=\"missing_fields_redirect\" value=\"http://www.loop.dk/mercodan/order_rejected.asp\">
<input type=hidden name=\"redirect\" value=\"http://www.loop.dk/mercodan/order_accepted.asp\">

     
      <table  border=0  cellpadding=4 cellspacing=0  width=\"90%\">
<td colspan=4>
        <div align=\"left\"><font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\">Din
          Ordre<br>
          </font></div>
      </td>     
<tr >
          <td width=\"10%\"><font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\">Varenr</font></td>
          <td width=\"70%\"><font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\">Beskrivelse</font></td>
          <td width=\"16%\" align=left><font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\">Pris</font></td>
          <td width=\"4%\"><font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\">Antal</font></td>
        </tr>
        <tr >
         
      <td colspan=4 height=\"4\"><img src=\"grafik/2x2.gif\" width=\"100%\" height=\"2\"></td>
        </tr >
       
        <tr valign=\"top\">
          <td width=\"10%\"><font size=\"2\" face=\"Verdana, Arial, MS Sans Serif\">01.0001</font></td>
          <td width=\"70%\"> <font size=\"2\" face=\"Verdana, Arial, MS Sans Serif\">EDB-netkabel 2.0m. gr&#229;. Stiktype; SmarTplug og lige apparatstik. Kabel; H05VV-F3G 0.75mm. 10A-250V.
            </font></td>
          <td width=\"16%\"> <font size=\"2\" face=\"Verdana, Arial, MS Sans Serif\">kr 32,00
            </font></td>
          <td width=\"4%\"> <font size=\"2\" face=\"Verdana, Arial, MS Sans Serif\">
            <input name=\"pq01.0001\" type=\"text\" size=3
  value=\"100\">
            </font></td>
        </tr>
       
        <tr valign=\"top\">
          <td width=\"10%\"><font size=\"2\" face=\"Verdana, Arial, MS Sans Serif\">03.0150</font></td>
          <td width=\"70%\"> <font size=\"2\" face=\"Verdana, Arial, MS Sans Serif\">Monitorkabel VGA 2.0m. 5 x BNC R.G.B.H.V (HD D-Sub 15 han: 5 x BNC) st&#248;bt hus. fingerskrue og ferritkerne.
            </font></td>
          <td width=\"16%\"> <font size=\"2\" face=\"Verdana, Arial, MS Sans Serif\">kr 185,00
            </font></td>
          <td width=\"4%\"> <font size=\"2\" face=\"Verdana, Arial, MS Sans Serif\">
            <input name=\"pq03.0150\" type=\"text\" size=3
  value=\"100\">
            </font></td>
        </tr>
       
        <td colspan=4 height=\"2\"><img src=\"grafik/2x2.gif\" width=\"100%\" height=\"2\"></td>
        <tr>
          <td></td>
          <td align=left><font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\">Order
            total:<br><b>Her til kommer fragt!</b> </font></td>
          <td colspan=2>
        <p><font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\">kr 21.700,00
          </font></p>
        </td>
        </tr>
        <td colspan=4 height=\"2\"><img src=\"grafik/2x2.gif\" width=\"100%\" height=\"2\"></td>
        <tr>
</tr>
       
      <td colspan=4 height=\"2\"><font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\"><b>Husk
        at køb over 1000.-kr er uden ekspeditionsgebyr!</b></font><br>
       

<html>
<p> <b>
  <input type=\"checkbox\" name=\"salgs og leveringsbetingelserne\" value=\"Accepteret\" checked>
  <input type=hidden name=\"subject\" value=\"Dansk kunde\">
  <font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\">Jeg er bekendt med salgs
  og leveringsbetingelserne </font></b></p>
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
  <tr>
    <td width=\"50%\"><font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\">Firma:
      <br>
      <textarea name=\"Firma\" cols=\"28\" rows=\"2\" wrap=\"VIRTUAL\"></textarea>
      <br>
      Adresse:<br>
      <textarea name=\"Adresse\" cols=\"28\" rows=\"2\" wrap=\"VIRTUAL\"></textarea>
      <br>
      Postnr:/By:<br>
      <input name=\"Postnr\" size=\"4\">
      <input name=\"By\" size=\"20\">
      <br>
      Land:<br>
      <input name=\"Land\" size=\"12\">
      <br>
    <br>
     
      </font><font size=\"2\"><b><br>
      </b></font> </td>
    <td width=\"50%\"><font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\">Navn/Bestiller:<br>
      <textarea name=\"Bestiller\" cols=\"28\" rows=\"2\" wrap=\"VIRTUAL\"></textarea>
      <br>
      Komentar til ordre: <br>
      <textarea name=\"Komentar\" cols=\"28\" rows=\"2\" wrap=\"VIRTUAL\"></textarea>
      <br>
      E-mail:<br>
      <input name=\"Email\" size=\"30\" >
      <br>
      Tlf/Fax:<br>
      <input name=\"Tlf\" size=\"12\" >
      <input name=\"Fax\" size=\"12\" >
      <br>
      Ordrenr/Rekvisitionsnr:<br>
      <input name=\"Rekvisitionsnr\" size=\"12\">
      </font> </td>
  </tr>
</table>
<b> </b>
</html>
</td>
        <tr>
          <td></td>
          <td colspan=2>
            <table border=0>
              <tr>
                <td align=\"right\">
               
                </td>
              <td>
              <A HREF=\"java script:send()\"><font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\">Bestil</font></a>&nbsp;&nbsp;
              </td></form>
             
                <td>
                  <A HREF=\"java script:history.back();\"><font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\">Tilbage</font></a>&nbsp;&nbsp;<a href=\"java script:printorder()\" Style=\"cursor:hand\"><font face=\"Verdana, Arial, MS Sans Serif\" size=\"2\">Udskriv</font></a>
                </td>
             
              </tr>
            </table>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>


</body>
</html>
Avatar billede pool Nybegynder
07. marts 2001 - 13:43 #14
I den pasted code ligger der to vare nummere, som ved submit blive sendt til et standart formmail script som så returnerer antal og vare nr. samt kunde oplysninger
vare nummer er et variable navn på antallet

Henrik

Avatar billede pool Nybegynder
07. marts 2001 - 13:46 #15
Den er selfølgelig blevet revideret siden sidst jeg skrev!

Henrik
Avatar billede lange Nybegynder
07. marts 2001 - 13:52 #16
Når jeg trykker Send i ovenstående kode, bliver der sendt en mail til mig med ordrenumre og antal plus alle de andre oplysninger, jeg har indtastet. Med andre ord, det ser ud til at virke. Hvad er problemet?
Avatar billede pool Nybegynder
07. marts 2001 - 15:08 #17
Jamen Der er ikke noget problem her. Men siden skal på et tidspungt over på en anden server,hvor der er begranset PL script muligheder. Min ide var derfor at lave det hele i ASP, så jeg sprang formmail scriptet over!
Jeg syntes bare der er synergi at det hele var ASP

/Henrik

PS jeg gelmte at fortælle at den er aktiv :-)



Avatar billede lange Nybegynder
08. marts 2001 - 09:43 #18
Ok, så skal du jo bare oprette et ASP-script, der fx hedder formmail.asp og indeholder det kode, netsrac skrev lidt højere oppe, bare med lidt tilføjelser:

<%
Modtager = Request(\"recipient\")
Afsender = Request(\"\"loop@net-produktion.dk\"
Subject = \"Ordre formular\"

For Each ITEM In request.form
  body = body & \" \" & item & \" \" & request.form(ITEM)
Next

Set objNewMail = CreateObject(\"CDONTS.NewMail\")
objNewMail.Send(afsender, modtager, subject, body, 1)
Set objNewMail = Nothing

response.redirect(request(\"redirect\"))
%>

og ændre din form til at anvende formail.asp i stedet for http://www.dht.dk/webhotel/support/formmail/formmail.pl . Så burde det faktisk virke omtrent som før, bare i ren ASP og på din egen server. Dog laver det script ikke noget check af, hvilke felter, der er udfyldt, og det sender altid videre til accept-siden.
Avatar billede pool Nybegynder
08. marts 2001 - 14:54 #19
Hej Lange

Jeg rettede i afsender så der kom til at stå Request(\"Loop@net-produktion.dk\")

Men jeg få denne fejl når jeg prøver at køre det på min server

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl
(0x800A0414)
Der kan ikke bruges parenteser ved kald af en Sub
/mercodan/submit.asp, line 11, column 53
objNewMail.Send(afsender, modtager, subject, body, 1)
----------------------------------------------------^



/Henrik
Avatar billede pool Nybegynder
08. marts 2001 - 16:52 #20
ok Jeg har lavet det på en lidt anderledes måde
MEN NU VIRKER DET SKU!!
Det kommer godt nok lidt rodet :-(

Ok til sagen
Jeg har tænkt mig at dele pointsne mellem alle parter da jeg er blevet oplyst af jeres svar, men selv fik det til at virke
Her er koden

/Henrik


<%
Dim BestillingsMail
dim strBody
  Set BestillingsMail = CreateObject(\"CDONTS.Newmail\")
    Modtager = \"loop@net-produktion.dk\"
    BestillingsMail.From = \"Henrik\"
      BestillingsMail.To = Modtager
      BestillingsMail.Subject = \"Ordre formular\"
        For Each ITEM In request.form
                strBody = strBody & \" \" & item & \" : \" & request.form(ITEM) & VbNewline  & VbNewline
            If item = \"recipient\" Then
            strBody = \"\"
            end if
            If item = \"required\" Then
            strBody = \"\"
            end if
            If item = \"redirect\" Then
            strBody = \"\"
            end if
            If item = \"Email\" Then
            strBody = \"\"
            end if
        Next
            BestillingsMail.Body = strBody
          BestillingsMail.Send
      Set BestillingsMail = Nothing
response.redirect(request(\"redirect\"))
%>
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