26. juni 2007 - 12:14Der er
7 kommentarer og 1 løsning
Jmail - send kun udfyldte input felter?
Hejsa ..
Jeg sidder og roder med at sende email vha. asp og JMail. (jeg kan ikke rigtigt kode i asp :/ )
Jeg har en side der indeholder en <form> med rigtigt mange <input> felter, ca. 150. Jeg benytter nedenstående kode til at sende emailen med og det virker juhuuuu :)
Mit problem er at den sende alle <input> felter med og ikke kun dem brugeren udfylder.
Er det muligt kun at sende de <input> felter der er udfyldt af brugeren? Er det evt. muligt at sortere dem så de stå i en bestem rækkefølge i emailen?
--------
' Create the JMail message Object set msg = Server.CreateOBject( "JMail.Message" )
' Set logging to true to ease any potential debugging ' And set silent to true as we wish to handle our errors ourself msg.Logging = true msg.silent = true
' Most mailservers require a valid email address ' for the sender msg.From = "janueess@mail.dk" msg.FromName = "Lars Larsen"
' Note that as addRecipient is method and not ' a property, we do not use an equals ( = ) sign msg.AddRecipient "my @ mail . dk", "Ib Hansen"
' The subject of the message msg.Subject = "Her skal der stå noget"
'add every form element and its value to the email FOR EACH el IN Request.Form msg.appendtext( el & ": " & Request.form(el) & vbcrlf ) NEXT
' Now send the message, using the indicated mailserver if not msg.Send("mail.joelle1.dk" ) then Response.write "<pre>" & msg.log & "</pre>" else Response.Redirect "../tak.htm" end if -----
Hvis der er en der kan sende mig i retning af et eksempel på nettet, vil det gøre mig lidt lykkelig (har ledt).
' Create the JMail message Object set msg = Server.CreateOBject( "JMail.Message" )
' Set logging to true to ease any potential debugging ' And set silent to true as we wish to handle our errors ourself msg.Logging = true msg.silent = true
' Most mailservers require a valid email address ' for the sender msg.From = "janueess@mail.dk" msg.FromName = "Lars Larsen"
' Note that as addRecipient is method and not ' a property, we do not use an equals ( = ) sign msg.AddRecipient "my @ mail . dk", "Ib Hansen"
' The subject of the message msg.Subject = "Her skal der stå noget"
'add every form element and its value to the email FOR EACH el IN Request.Form if Request.form(el) <> "" then msg.appendtext( el & ": " & Request.form(el) & vbcrlf ) end if NEXT
' Now send the message, using the indicated mailserver if not msg.Send("mail.joelle1.dk" ) then Response.write "<pre>" & msg.log & "</pre>" else Response.Redirect "../tak.htm" end if
I emailen står felterne i den rækkefølge de er sendt til serveren i. Det vil typisk være den samme rækkefølge som de står i på siden hvor brugeren indtaster data. Hvordan vil du da gerne have dem sorteret?
Ang. sortering, nedenstående er et eksempel på den email jeg modtager. Som du kan se så er alt bare blandet sammen. Hvis det kunne lade sig gøre kunne det være fedt hvis "dag, måned, år" stod til sidst og "submit" er fjernet. --- år: 2007 210 Guld grov: 10 dag: 10 927 Rensepulver: 10 003 Lemon: 10 937 Kande rustfrit stål: 10 måned: 10 submit: Send bestilling ---
Hvis det er en større ting med det sortering, så glem det .. du har allerede reddet min dag. (jeg ved solen skinner på den anden side af skyerne :)
Sorteringen kan være lidt omfattende med så mange felter. Men du kan nemt fjerne submit: 'add every form element and its value to the email FOR EACH el IN Request.Form if Request.form(el) <> "" and el <> "submit" then msg.appendtext( el & ": " & Request.form(el) & vbcrlf ) end if NEXT
nej...skal være AND if Request.form(el) <> "" and el <> "submit" then betyder: HVIS feltet IKKE er tomt og feltet IKKE er submit-feltet så fortsæt...
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.