Avatar billede bredan1977 Nybegynder
27. oktober 2004 - 22:21 Der er 23 kommentarer og
1 løsning

Send Email fra ASPForm?

Nu er det sådan at jeg er ved at lave en lille webshop....

Efter det hele bliver skrevet ind i DB, så kan man gå til kassen, og sende sin ordrer!

Hvordan laver jeg det på den nemmeste måde???

Som sagt så er ordren gemt i en DB, hvor der er koblet en nogen varer op imod et ordrer nummer!
Avatar billede para7 Nybegynder
28. oktober 2004 - 08:15 #1
Her er en slags skabelon-side, du nok kan bruge som udgangspunkt. Kald den fx ordreMail.asp:

<html>
<body>
<%
Server.ScriptTimeout = 6000
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.Silent = true
JMail.Logging = true

JMail.ServerAddress = "mail.mitsite.dk"
jMail.sendername = request("navn")
JMail.Sender = request("email")
JMail.Subject = " Ordre fra " & request("navn")
JMail.AddRecipient "mig@mitsite.dk"

body = "<b>Ny ordre fra ordre siden.<br><br><br>"
body = body & "Bestilte varer: <br>"
body = body & request("antal") & " stk. " & request("vare") & "<br><br><br>"
body = body & "Kunden har oplyst følgende:<br><br>"
body = body & "Navn: " & request("navn") & "<br>"
body = body & "E-mail: " & request("email") & "<br>"
body = body & "Telefon: " & request("telefon") & "<br>"
body = body & "Kommentarer:<br>" & request("Kommentarer") & "<br>"
body = body & "<br><br><br><b>Denne e-mail er sendt fra:<br>"
body = body & "<a href='http://" & request.servervariables("SERVER_NAME") & "'>"
body = body & request.servervariables("SERVER_NAME") & "</a></b><br><br><br>"

jMail.ContentType  = "text/html"
JMail.Priority = 3
JMail.Body = body

'Her kan du teste:
'response.write "Subject: " & JMail.Subject & "<br><br>"
'response.write "Meddelelse:<br>" & body
'response.end
'test slut

JMail.Execute
Set JMail = Nothing

%>
Tak fordin ordre. Vi sender varerne hurtigst muligt.<br>
</body>
</html>
Avatar billede para7 Nybegynder
28. oktober 2004 - 08:26 #2
OK, ordren skal vel hentes i db, så du kan gøre ca. sådan her:

<html>
<body>
<%

Set conn = server.createobject("ADODB.connection")    'db forbindelsen oprettes/åbnes
conn.open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =" & server.Mappath("db_vf24161kf6dg4o4mqwclgpvd/noniportalen.mdb")  'db åbnes lokalt
Set rs = Server.createobject("ADODB.Recordset")    'Recordset oprettes
strSQL = " select * from Ordrer where ID = " & request("ID")
rs.open strSQL, conn
do until rs.EOF

Server.ScriptTimeout = 6000
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.Silent = true
JMail.Logging = true

JMail.ServerAddress = "mail.mitsite.dk"
jMail.sendername = rs("navn")
JMail.Sender = rs("email")
JMail.Subject = " Ordre fra " & rs("navn")
JMail.AddRecipient "mig@mitsite.dk"

body = "<b>Ny ordre fra ordre siden.<br><br><br>"
body = body & "Bestilte varer: <br>"
body = body & rs("antal") & " stk. " & rs("vare") & "<br><br><br>"
body = body & "Kunden har oplyst følgende:<br><br>"
body = body & "Navn: " & rs("navn") & "<br>"
body = body & "E-mail: " & rs("email") & "<br>"
body = body & "Telefon: " & rs("telefon") & "<br>"
body = body & "Kommentarer:<br>" & rs("Kommentarer") & "<br>"
body = body & "<br><br><br><b>Denne e-mail er sendt fra:<br>"
body = body & "<a href='http://" & rs.servervariables("SERVER_NAME") & "'>"
body = body & rs.servervariables("SERVER_NAME") & "</a></b><br><br><br>"

jMail.ContentType  = "text/html"
JMail.Priority = 3
JMail.Body = body

JMail.Execute
Set JMail = Nothing

rs.movenext
loop
rs.Close
set rs = nothing

%>
Tak fordin ordre. Vi sender varerne hurtigst muligt.<br>
</body>
</html>
Avatar billede para7 Nybegynder
28. oktober 2004 - 08:32 #3
PS: stien til db
db_vf24161kf6dg4o4mqwclgpvd/noniportalen.mdb
er bare en måde man jeg skjuler min database. Den har i virkeligheden et helt andet navn.
Avatar billede bredan1977 Nybegynder
28. oktober 2004 - 09:59 #4
Nu er det sådan at jeg har delt det op:
orderindhold = Som er de bestiltet varer
orderliste = Orderne...

Men jeg får en fejl!!
28-10-2004-1010052833

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/store/sendorder.asp, line 17


Her er min kode:

<html>
<body>
<%
Session("Ordernummer") = Session("Ordernummer")
response.write Session("Ordernummer")

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../cgi-data/storedb.mdb")
Conn.Open DSN

Set rsVare= server.Createobject("ADODB.Recordset")
SQL_String = "Select * from orderindhold WHERE ordernummer=" & "'" & Session("Ordernummer") & "'"
rsVare.open SQL_String, Conn

Set rsOrder= server.Createobject("ADODB.Recordset")
SQL_String = "Select * from orderliste WHERE ordernummer=" & "'" & Session("Ordernummer") & "'"
rsOrder.open SQL_String, Conn

do until rsSendOrder.EOF

Server.ScriptTimeout = 6000
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.Silent = true
JMail.Logging = true

JMail.ServerAddress = "smtp.mail.dk"
jMail.sendername = rsOrder("KundeNavn")
JMail.Sender = rsOrder("email")
JMail.Subject = " Ordre fra " & rsOrder("KundeNavn")
JMail.AddRecipient "domino@tdcadsl.dk"

body = "<b>Ny ordre fra ordre siden.<br><br><br>"
body = body & "Bestilte varer: <br>"
body = body & rsvare("produktantal") & " stk. " & rsSendOrder("produktNavn") & "<br><br><br>"
body = body & "Kunden har oplyst følgende:<br><br>"
body = body & "Navn: " & rsOrder("KundeNavn") & "<br>"
body = body & "E-mail: " & rsOrder("email") & "<br>"
body = body & "Telefon: " & rsOrder("KundeTelefon") & "<br>"
body = body & "Kommentarer:<br>" & rsOrder("KundeNotat") & "<br>"
body = body & "<br><br><br><b>Denne e-mail er sendt fra:<br>"
body = body & "<a href='http://" & rsSendOrder.servervariables("SERVER_NAME") & "'>"
body = body & rsSendOrder.servervariables("SERVER_NAME") & "</a></b><br><br><br>"

jMail.ContentType  = "text/html"
JMail.Priority = 3
JMail.Body = body

JMail.Execute
Set JMail = Nothing

rsSendOrder.movenext
loop
rsSendOrder.Close
set rsSendOrder = nothing
%>
Tak fordin ordre. Vi sender varerne hurtigst muligt.<br>
</body>
</html>
Avatar billede para7 Nybegynder
28. oktober 2004 - 11:04 #5
Du skriver
do until rsSendOrder.EOF
Men du har da ikke oprettet noget recordset med det navn.
Avatar billede bredan1977 Nybegynder
28. oktober 2004 - 11:11 #6
Nej... har rettet det:

<html>
<body>
<%
Session("Ordernummer") = Session("Ordernummer")
response.write Session("Ordernummer")

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../cgi-data/storedb.mdb")
Conn.Open DSN

Set rsVare= server.Createobject("ADODB.Recordset")
SQL_StringVare = "Select * from orderindhold WHERE ordernummer=" & "'" & Session("Ordernummer") & "'"
rsVare.open SQL_StringVare, Conn

Set rsOrder= server.Createobject("ADODB.Recordset")
SQL_StringOrder = "Select * from orderliste WHERE ordernummer=" & "'" & Session("Ordernummer") & "'"
rsOrder.open SQL_StringOrder, Conn

do until rsVare.EOF

Server.ScriptTimeout = 6000
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.Silent = true
JMail.Logging = true

JMail.ServerAddress = "smtp.mail.dk"
jMail.sendername = rsOrder("KundeNavn")
JMail.Sender = rsOrder("email")
JMail.Subject = " Ordre fra " & rsOrder("KundeNavn")
JMail.AddRecipient "domino@tdcadsl.dk"

body = "<b>Ny ordre fra ordre siden.<br><br><br>"
body = body & "Bestilte varer: <br>"
body = body & rsvare("produktantal") & " stk. " & rsVare("produktNavn") & "<br><br><br>"
body = body & "Kunden har oplyst følgende:<br><br>"
body = body & "Navn: " & rsOrder("KundeNavn") & "<br>"
body = body & "E-mail: " & rsOrder("email") & "<br>"
body = body & "Telefon: " & rsOrder("KundeTelefon") & "<br>"
body = body & "Kommentarer:<br>" & rsOrder("KundeNotat") & "<br>"
body = body & "<br><br><br><b>Denne e-mail er sendt fra:<br>"
body = body & "<a href='http://" & rsOrder.servervariables("SERVER_NAME") & "'>"
body = body & rsOrder.servervariables("SERVER_NAME") & "</a></b><br><br><br>"

jMail.ContentType  = "text/html"
JMail.Priority = 3
JMail.Body = body

JMail.Execute
Set JMail = Nothing

rsVare.movenext
loop
rsVare.Close
set rsVare = nothing
%>
Tak fordin ordre. Vi sender varerne hurtigst muligt.<br>
</body>
</html>
Avatar billede para7 Nybegynder
28. oktober 2004 - 12:00 #7
Tak for point :)
Avatar billede bredan1977 Nybegynder
28. oktober 2004 - 12:22 #8
Jeg får altså fejlen:
Server object error 'ASP 0177 : 800401f3'

Server.CreateObject Failed

/store/sendorder.asp, line 23

Invalid ProgID. For additional information specific to this message please visit the Microsoft Online Support site located at: http://www.microsoft.com/contentredirect.asp.

Det er linje:
Set JMail = Server.CreateObject("JMail.SMTPMail")
Avatar billede para7 Nybegynder
28. oktober 2004 - 12:44 #9
Kan du finde ud af om hotelpladsen understøtter jMail? Hvis ikke kan vi sansynligvis bare bruge CDONTS og jeg sender dig så lige noget nyt kode. OK?
Avatar billede para7 Nybegynder
28. oktober 2004 - 12:46 #10
Invalid ProgID betyder nu helt sikkert at der ikke er jMail på serveren. Så jeg sender kode om lidt.
Avatar billede bredan1977 Nybegynder
28. oktober 2004 - 12:48 #11
ok...
Avatar billede para7 Nybegynder
28. oktober 2004 - 12:58 #12
Set objCDO = Server.CreateObject("CDONTS.NewMail")
objCDO.From = rsOrder("email")
objCDO.To = "domino@tdcadsl.dk"
'objCDO.Cc = rsOrder("email")  'Hvis kunden skal have en kopi
objCDO.Subject = " Ordre fra " & rsOrder("KundeNavn")
body = "<b>Ny ordre fra ordre siden.<br><br><br>"
body = body & "Bestilte varer: <br>"
body = body & rsvare("produktantal") & " stk. " & rsVare("produktNavn") & "<br><br><br>"
body = body & "Kunden har oplyst følgende:<br><br>"
body = body & "Navn: " & rsOrder("KundeNavn") & "<br>"
body = body & "E-mail: " & rsOrder("email") & "<br>"
body = body & "Telefon: " & rsOrder("KundeTelefon") & "<br>"
body = body & "Kommentarer:<br>" & rsOrder("KundeNotat") & "<br>"
body = body & "<br><br><br><b>Denne e-mail er sendt fra:<br>"
body = body & "<a href='http://" & rsOrder.servervariables("SERVER_NAME") & "'>"
body = body & rsOrder.servervariables("SERVER_NAME") & "</a></b><br><br><br>"
objCDO.Body = body
objCDO.MailFormat = 0
objCDO.BodyFormat = 0
objCDO.Send
Set objCDO = Nothing
Avatar billede bredan1977 Nybegynder
28. oktober 2004 - 13:07 #13
Hmmm.. ja nu slugte den godt nok siden..

Så må vi sen om der kommer en mail!
Avatar billede bredan1977 Nybegynder
28. oktober 2004 - 13:11 #14
Er der en måde at tjekke om den er sendt uden fejl?
Avatar billede para7 Nybegynder
28. oktober 2004 - 13:14 #15
Det kender jeg ikke til.
Avatar billede para7 Nybegynder
28. oktober 2004 - 13:21 #16
Her er en side om CDONTS:
http://www.devasp.com/Samples/mail.asp
Avatar billede hastek22 Nybegynder
28. oktober 2004 - 13:27 #17
Du bør nok skifte denne :
objCDO.From = rsOrder("email")

ud med
objCDO.From = "domino@tdcadsl.dk"
eller en anden gyldig mailadr. i dit eget domæne, da du ellers forsøger at bruge en andens mailserver.
Avatar billede bredan1977 Nybegynder
28. oktober 2004 - 13:30 #18
der kommer ikke noget!
Avatar billede bredan1977 Nybegynder
28. oktober 2004 - 13:38 #19
Der kommer en fejl igen nu!

i Linjen:
body = body & "<a href='http://" & rsOrder.servervariables("SERVER_NAME") & "'>"

Microsoft VBScript runtime  error '800a01b6'

Object doesn't support this property or method: 'servervariables'

/STore/sendorder.asp, line 36
Avatar billede bredan1977 Nybegynder
28. oktober 2004 - 13:50 #20
Nu kører den...

Jeg fjernede bare de to linjer her:
body = body & "<a href='http://" & rsOrder.servervariables("SERVER_NAME") & "'>"
body = body & rsOrder.servervariables("SERVER_NAME") & "</a></b><br><br><br>"
Avatar billede bredan1977 Nybegynder
28. oktober 2004 - 13:51 #21
Hov.. den sender 5 emails, hvis man bestiller 5 ting!!!!!

Det er jo ikke meninigen!
Avatar billede hastek22 Nybegynder
28. oktober 2004 - 13:53 #22
Det ville også umiddelbart være mit bud. Men hvis du ønsker det kan du jo skrive de parametre ind i "hånden" istedet for at spørge serveren om det.
Avatar billede bredan1977 Nybegynder
28. oktober 2004 - 14:28 #23
Hvilke parametre snakker du om?
Avatar billede hastek22 Nybegynder
28. oktober 2004 - 14:39 #24
SERVER_NAME:
Det du bad den om i de to linier var at indføje adressen på din e-shop, som et link.
Det kan du skrive som et helt normalt link.

Vedr. dine fem mails, så er det fordi den løber dine recordset igennem en for en og sender en mail hvergang.
Jeg ved ikke om du kan kan lave gennemløbet inde i din mail funktion eller om du er nød til at skrive dem ud i en tabel/form først, og så sende tabellen/formen istedet for:
body = body & rsvare("produktantal") & " stk. " & rsVare("produktNavn") & "<br><br><br>"
noget ala:
body = body & Request.Form ("bestillingForm")
hvor "bestillingsform" er der hvor du har læst varene ud.
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