04. december 2000 - 17:15Der er
20 kommentarer og 1 løsning
ASP JMail indsæt date fra database.
Jeg har understående script, der forgår to ting under afviklingen af dette script :
1.) Den indsætter nogle date i en database
2.) Den sender en mail med en note om at databasen er blevet ændret.
Jeg vil gerne havde at JMail også sender disse data som er indsat i databasen. Jeg har forsøgt mig lidt frem, men det ser ud til at jeg bliver ved med at lave en syntax fejl, derfor poster jeg hele scriptet som virker, nu vil jeg som sagt blot havde den til at sende indholdet fra databasen med i den mail som bliver afsendt.
<!-- #include file=\"db.inc\" --> <% For Each key in Request.Form strname = key strvalue = Request.Form(key) Session(strname) = strvalue Next
If Request.Form(\"cardaddress\") = \"\" OR len(Request.Form(\"cardaddress\")) <=8 Then Response.Redirect \"checkout.asp?msg=\" & Server.URLEncode (\"Skriv venligst en adresse som vi kan sende en kvittering til.\") Else
Dim arrCart, metacartItem arrCart = Session(\"MyCart\") metacartItem = Session(\"cartItem\")
Dim rsorder Set rsorder = Server.CreateObject (\"ADODB.recordset\") rsorder.Open \"orders\", dbc, adOpenKeyset, adLockPessimistic, adCmdTable rsorder.AddNew rsorder(\"ocustomerid\") = Session(\"customerid\") rsorder(\"odate\") = Date rsorder(\"orderamount\") = Request.Form(\"ordertotal\") rsorder(\"oshipmethod\") = CInt(Request.Form(\"shipment\")) rsorder(\"ocardtype\") = Request.Form(\"paymentm\") rsorder(\"ocardno\") = Request.Form(\"cardno\") rsorder(\"ocardname\") = Request.Form(\"cardname\") rsorder(\"ocardexpires\") = Request.Form(\"cardexpire\") rsorder(\"ocardaddress\") = Request.Form(\"cardaddress\") If Not Request.Form(\"shipaddress\")=\"\" then rsorder(\"oshipaddress\") = Request.Form(\"shipaddress\") End If If Not Request.Form(\"shiptown\")=\"\" then rsorder(\"oshiptown\") = Request.Form(\"shiptown\") End If If Not Request.Form(\"shipzip\")=\"\" then rsorder(\"oshipzip\") = Request.Form(\"shipzip\") End If If Not Request.Form(\"shipstate\")=\"\" then rsorder(\"oshipstate\") = Request.Form(\"shipstate\") End If If Not Request.Form(\"shipcountry\")=\"\" then rsorder(\"oshipcountry\") = Request.Form(\"shipcountry\") End If rsorder.Update rsorder.Close
Dim oid, sqlo sqlo = \"SELECT max(orderID) FROM orders\" Set rso = dbc.Execute(sqlo) oid = Cint(rso(0)) rso.Close
If oid < 1 Then Response.Redirect \"error.asp?msg=\" & Server.URLEncode (\"Error: No order id.\") Else Dim rsitem Set rsitem = Server.CreateObject (\"ADODB.recordset\") rsitem.Open \"oitems\", dbc, adOpenKeyset, adLockOptimistic , adcmdtable For i = 1 To metacartItem rsitem.AddNew rsitem(\"orderid\") = oid rsitem(\"catalogid\") = arrCart(cProductid,i) rsitem(\"numitems\") = arrCart(cQuantity,i) rsitem.Update Next rsitem.Close End if
If dbc.Errors.Count > 0 then dbc.Close set dbc = nothing Response.Redirect \"error.asp?msg=\" & Server.URLEncode (\"Did not succeed. Error: \") & dbc.Error.Description Else dbc.close set dbc = nothing \' ******* her sættes Jmail funktionen ind
Set JMail = Server.CreateObject(\"JMail.SMTPMail\")
JMail.ServerAddress = \"mail.kni.gl\" JMail.Sender = \"arz@mail.kni.gl\" JMail.Sendername = \" SPAR Vinhandel \" JMail.Subject = \" Ny Ordre \" \' **** Modtager af e-mailen ( f.eks. din@email.dk ) ************ JMail.AddRecipient \"arz@mail.kni.gl\" JMail.body = \"Der er kommet en ny ordre i vinhandelen. Åben database og send ordre til SPAR.\" JMail.Priority = 3 JMail.AddHeader \"Originating-IP\", Request.ServerVariables(\"REMOTE_ADDR\") \' **** Sender E-Mailen ************ JMail.Execute \'********** her afsluttes Jmail ****** Response.Redirect \"checkout1.asp\" End If End If %>
Altså jeg har to handlinger i overstående script og dem vil jeg gerne havde således at der hvor jeg har JMail.body bliver de data der er sendt til databasen også bliver send som mail.
du tager da bare og laver en ny variabel (her body) som er sat sammen af alle felternes værdoer, ved hjælp af request! Her lidt til en start:
body = Request.Form(\"ordertotal\") & vbnewline body = body & Request.Form(\"shipment\") & vbnewline body = body & Request.Form(\"payment\") & vbnewline
<%@ Language=VBScript %> <!-- #include file=\"db.inc\" --> <% For Each key in Request.Form strname = key strvalue = Request.Form(key) Session(strname) = strvalue Next
If Request.Form(\"cardaddress\") = \"\" OR len(Request.Form(\"cardaddress\")) <=8 Then Response.Redirect \"checkout.asp?msg=\" & Server.URLEncode (\"Skriv venligst en adresse som vi kan sende en kvittering til.\") Else Dim arrCart, metacartItem arrCart = Session(\"MyCart\") metacartItem = Session(\"cartItem\")
Dim rsorder
Set rsorder = Server.CreateObject (\"ADODB.recordset\")
rsorder.Open \"orders\", dbc, adOpenKeyset, adLockPessimistic, adCmdTable rsorder.AddNew rsorder(\"ocustomerid\") = Session(\"customerid\") rsorder(\"odate\") = Date rsorder(\"orderamount\") = Request.Form(\"ordertotal\") rsorder(\"oshipmethod\") = CInt(Request.Form(\"shipment\")) rsorder(\"ocardtype\") = Request.Form(\"paymentm\") rsorder(\"ocardno\") = Request.Form(\"cardno\") rsorder(\"ocardname\") = Request.Form(\"cardname\") rsorder(\"ocardexpires\") = Request.Form(\"cardexpire\") rsorder(\"ocardaddress\") = Request.Form(\"cardaddress\") If Not Request.Form(\"shipaddress\") = \"\" Then rsorder(\"oshipaddress\") = Request.Form(\"shipaddress\"): strBody = strBody & \"Address: \" & Request.Form(\"shipaddress\") & vbCrLf If Not Request.Form(\"shiptown\") = \"\" Then rsorder(\"oshiptown\") = Request.Form(\"shiptown\"): strBody = strBody & \"City: \" & Request.Form(\"shiptown\") & vbCrLf If Not Request.Form(\"shipzip\") = \"\" Then rsorder(\"oshipzip\") = Request.Form(\"shipzip\"): strBody = strBody & \"Zip/Postal Code: \" & Request.Form(\"shipzip\") & vbCrLf If Not Request.Form(\"shipstate\") = \"\" Then rsorder(\"oshipstate\") = Request.Form(\"shipstate\"): strBody = strBody & \"State: \" & Request.Form(\"shipstate\") & vbCrLf If Not Request.Form(\"shipcountry\") = \"\" Then rsorder(\"oshipcountry\") = Request.Form(\"shipcountry\"): strBody = strBody & \"Country: \" & Request.Form(\"shipcountry\") & vbCrLf rsorder.Update rsorder.Close
Dim oid, sqlo sqlo = \"SELECT max(orderID) FROM orders\" Set rso = dbc.Execute(sqlo) oid = Cint(rso(0)) rso.Close
If oid < 1 Then Response.Redirect \"error.asp?msg=\" & Server.URLEncode (\"Error: No order id.\") Else Dim rsitem Set rsitem = Server.CreateObject (\"ADODB.recordset\") rsitem.Open \"oitems\", dbc, adOpenKeyset, adLockOptimistic , adcmdtable
For i = 1 To metacartItem rsitem.AddNew rsitem(\"orderid\") = oid rsitem(\"catalogid\") = arrCart(cProductid,i) rsitem(\"numitems\") = arrCart(cQuantity,i) rsitem.Update Next
rsitem.Close End if
If dbc.Errors.Count > 0 then dbc.Close set dbc = nothing Response.Redirect \"error.asp?msg=\" & Server.URLEncode (\"Did not succeed. Error: \") & dbc.Error.Description Else dbc.close set dbc = nothing
Set JMail = Server.CreateObject(\"JMail.SMTPMail\")
JMail.ServerAddress = \"mail.kni.gl\" JMail.Sender = \"arz@mail.kni.gl\" JMail.Sendername = \" SPAR Vinhandel \" JMail.Subject = \" Ny Ordre \" \' **** Modtager af e-mailen ( f.eks. din@email.dk ) ************ JMail.AddRecipient \"arz@mail.kni.gl\" JMail.Body = strBody JMail.Priority = 3 JMail.AddHeader \"Originating-IP\", Request.ServerVariables(\"REMOTE_ADDR\") \' **** Sender E-Mailen ************ JMail.Execute \'********** her afsluttes Jmail ****** Response.Redirect \"checkout1.asp\" End If End If %>
Du skal huske du skal have været på siden, før denne! Altså den hvor brugeren udfylder felterne! Så submitter du formen og kommer til denne. Ellers vil der ikke være noget data i Request.Form(\"ordertotal\") !
Det kostede mig vist lige 500 ekstra point da i svarede på samme tid. Jeg laver lige et spørgsmål til Tdaugaard, du skal selvfølgelig også havde de point, dem har du fortjent.
Jeg har stadigvæk et lille problem, jeg ikke kan helt hitte ud af. Problemet er følgende, jeg kan ikke få den til at tage produkt id, med i den mail som den sender, jeg har alle andre med, men er ikke helt sikker på hvor jeg skal tilføje produkt ID i scriptet her kommer hele scriptet, den der løser problemet eller hjælpe mig til det for selvfølgelig 500 point :
<%@ Language=VBScript %> <!-- #include file=\"db.inc\" --> <% For Each key in Request.Form strname = key strvalue = Request.Form(key) Session(strname) = strvalue Next
If Request.Form(\"cardaddress\") = \"\" OR len(Request.Form(\"cardaddress\")) <=8 Then Response.Redirect \"checkout.asp?msg=\" & Server.URLEncode (\"Skriv venligst en adresse som vi kan sende en kvittering til.\") Else Dim arrCart, metacartItem arrCart = Session(\"MyCart\") metacartItem = Session(\"cartItem\")
Dim rsorder
Set rsorder = Server.CreateObject (\"ADODB.recordset\")
rsorder(\"orderamount\") = Request.Form(\"ordertotal\") rsorder(\"oshipmethod\") = CInt(Request.Form(\"shipment\")) rsorder(\"ocardtype\") = Request.Form(\"paymentm\") rsorder(\"ocardno\") = Request.Form(\"cardno\") rsorder(\"ocardname\") = Request.Form(\"cardname\") rsorder(\"ocardexpires\") = Request.Form(\"cardexpire\") rsorder(\"ocardaddress\") = Request.Form(\"cardaddress\") If Not Request.Form(\"shipaddress\") = \"\" Then rsorder(\"oshipaddress\") = Request.Form(\"shipaddress\"): strBody = strBody & \"Addresse: \" & Request.Form(\"shipaddress\") & vbCrLf If Not Request.Form(\"shiptown\") = \"\" Then rsorder(\"oshiptown\") = Request.Form(\"shiptown\"): strBody = strBody & \"By / bygd: \" & Request.Form(\"shiptown\") & vbCrLf If Not Request.Form(\"shipzip\") = \"\" Then rsorder(\"oshipzip\") = Request.Form(\"shipzip\"): strBody = strBody & \"Leverings dato: \" & Request.Form(\"shipzip\") & vbCrLf If Not Request.Form(\"shipstate\") = \"\" Then rsorder(\"oshipstate\") = Request.Form(\"shipstate\"): strBody = strBody & \"Postnummer: \" & Request.Form(\"shipstate\") & vbCrLf If Not Request.Form(\"shipcountry\") = \"\" Then rsorder(\"oshipcountry\") = Request.Form(\"shipcountry\"): strBody = strBody & \"Leverings tidspunkt: \" & Request.Form(\"shipcountry\") & vbCrLf rsorder.Update rsorder.Close
Dim oid, sqlo sqlo = \"SELECT max(orderID) FROM orders\" Set rso = dbc.Execute(sqlo) oid = Cint(rso(0)) rso.Close
If oid < 1 Then Response.Redirect \"error.asp?msg=\" & Server.URLEncode (\"Error: No order id.\") Else Dim rsitem Set rsitem = Server.CreateObject (\"ADODB.recordset\") rsitem.Open \"oitems\", dbc, adOpenKeyset, adLockOptimistic , adcmdtable
For i = 1 To metacartItem rsitem.AddNew rsitem(\"orderid\") = oid rsitem(\"catalogid\") = arrCart(cProductid,i) rsitem(\"numitems\") = arrCart(cQuantity,i) rsitem.Update Next
rsitem.Close End if
If dbc.Errors.Count > 0 then dbc.Close set dbc = nothing Response.Redirect \"error.asp?msg=\" & Server.URLEncode (\"Did not succeed. Error: \") & dbc.Error.Description Else dbc.close set dbc = nothing
Set JMail = Server.CreateObject(\"JMail.SMTPMail\")
JMail.ServerAddress = \"mail.kni.gl\" JMail.Sender = \"arz@mail.kni.gl\" JMail.Sendername = \" SPAR Vinhandel \" JMail.Subject = \" Ny Ordre \" \' **** Modtager af e-mailen ( f.eks. din@email.dk ) ************ JMail.AddRecipient \"arz@mail.kni.gl\" JMail.Body = strBody JMail.Priority = 3 JMail.AddHeader \"Originating-IP\", Request.ServerVariables(\"REMOTE_ADDR\") \' **** Sender E-Mailen ************ JMail.Execute \'********** her afsluttes Jmail ****** Response.Redirect \"checkout1.asp\" End If End If %>
<%@ Language=VBScript %> <!-- #include file=\"db.inc\" --> <% For Each key in Request.Form strname = key strvalue = Request.Form(key) Session(strname) = strvalue Next
If Request.Form(\"cardaddress\") = \"\" OR len(Request.Form(\"cardaddress\")) <=8 Then Response.Redirect \"checkout.asp?msg=\" & Server.URLEncode (\"Skriv venligst en adresse som vi kan sende en kvittering til.\") Else Dim arrCart, metacartItem arrCart = Session(\"MyCart\") metacartItem = Session(\"cartItem\")
Dim rsorder
Set rsorder = Server.CreateObject (\"ADODB.recordset\")
If oid < 1 Then Response.Redirect \"error.asp?msg=\" & Server.URLEncode (\"Error: No order id.\") Else Dim rsitem Set rsitem = Server.CreateObject (\"ADODB.recordset\") rsitem.Open \"oitems\", dbc, adOpenKeyset, adLockOptimistic , adcmdtable
For i = 1 To metacartItem rsitem.AddNew rsitem(\"orderid\") = oid rsitem(\"catalogid\") = arrCart(cProductid,i) rsitem(\"numitems\") = arrCart(cQuantity,i) rsitem.Update Next
rsitem.Close End if
If dbc.Errors.Count > 0 then dbc.Close set dbc = nothing Response.Redirect \"error.asp?msg=\" & Server.URLEncode (\"Did not succeed. Error: \") & dbc.Error.Description Else dbc.close set dbc = nothing
Set JMail = Server.CreateObject(\"JMail.SMTPMail\")
JMail.ServerAddress = \"mail.kni.gl\" JMail.Sender = \"arz@mail.kni.gl\" JMail.Sendername = \" SPAR Vinhandel \" JMail.Subject = \" Ny Ordre \" \' **** Modtager af e-mailen ( f.eks. din@email.dk ) ************ JMail.AddRecipient \"arz@mail.kni.gl\" JMail.Body = strBody JMail.Priority = 3 JMail.AddHeader \"Originating-IP\", Request.ServerVariables(\"REMOTE_ADDR\") \' **** Sender E-Mailen ************ JMail.Execute \'********** her afsluttes Jmail ****** Response.Redirect \"checkout1.asp\" End If End If %>
Synes godt om
Ny brugerNybegynder
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.