Kreegah Skrevet 17. februar 2010 Del Skrevet 17. februar 2010 Hallois Jeg er totalt novice når det kommer til programmeringsspråk, men har nylig fått i oppgave å fikse en feil på hjemmesidene til jobben. De har tidligere hatt ett domene som støtter .php, men nå har de endret til Telenor (og de støtter selvfølgelig ikke php, ) Så nå må jeg lete Google rundt etter en kode som gjør det samme som (http://www.tectite.com/formmailpage.php) gjør men i ASP,(kunden fyller ut en form for at denne så blir sent som HTML til jobbens e-post). Jeg har lett og lett, og søkt og søkt og det eneste resultatet jeg har kommet frem til er denne siden http://www.codeproject.com/KB/asp/sendmail.aspx <- Men koden er visst eldgammel og fungerer ikke lengre. (koden er skrevet i 2003/2006) Jeg har søkt og søkt på Google (spurt venner som kan mer om asp og prog språk enn meg) men det er ingen som kan gi meg ett godt svar på hvordan jeg kan legge til at skjemaet blir sent via en HTML template. har tittet og prøvd med denne også - http://www.sortedsites.com/formmail men jeg klarer ikke å legge til at skjemaet skal bruke min template.html (altså en løsning som gjør at vi kan bruke jobbens template.html som resultat ved sending av skjema) Noen som har tid til å se på dette? Er sykt frustrert, og sjefen er misfornøyd med at han må skrive ut 6 A4 sider der han tidligere kun trengte 1 Lenke til kommentar
Kreegah Skrevet 18. februar 2010 Forfatter Del Skrevet 18. februar 2010 Er det OL eller noe eller? hehe, hadde vært fint om noen kunne gitt meg noe pekepinn hvis det finnes noen. Lenke til kommentar
Ståle Skrevet 18. februar 2010 Del Skrevet 18. februar 2010 Du kan ikke gjøre det i rein HTML. Du må ha et serverside språk. Lenke til kommentar
Kreegah Skrevet 18. februar 2010 Forfatter Del Skrevet 18. februar 2010 Du kan ikke gjøre det i rein HTML. Du må ha et serverside språk. Ehm... Kan du utdype? jeg har en formmail.asp men den henter ikke noe informasjon fra en template. Utenom det fungerer den perfekt, bare at resultatet fra skjemaet blit 6A4 sider langt, istedet for på 1 A4 side som tabeller. Lenke til kommentar
Ståle Skrevet 18. februar 2010 Del Skrevet 18. februar 2010 Åj, jeg misforstod litt jeg. Nevermind. Lenke til kommentar
MailMan13 Skrevet 19. februar 2010 Del Skrevet 19. februar 2010 Litt vanskelig å svare uten å vite hva koden gjør. Lettere om du poster formmail.asp, eller ihvertfall delen som lager innholdet i e-posten. Lenke til kommentar
Kreegah Skrevet 19. februar 2010 Forfatter Del Skrevet 19. februar 2010 Litt vanskelig å svare uten å vite hva koden gjør. Lettere om du poster formmail.asp, eller ihvertfall delen som lager innholdet i e-posten. Legger med nesten hele formmail.asp, aner ikke hvordan jeg gjør så man kan skjule/vise den så jeg legger den i code jeg >.< '---------------------------------------------------------------------------------------------------- 'information type and CDOSYS constants '---------------------------------------------------------------------------------------------------- %> <!--METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows 2000 Library" --> <!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" --> <% '---------------------------------------------------------------------------------------------------- 'retrieved default fields '---------------------------------------------------------------------------------------------------- recipient = request("recipient") redirect = request("redirect") subject = request("subject") email = request("email") realname = request("realname") required = request("required") if required = "" then required = "recipient,subject,email,redirect" else required = "recipient,subject,email,redirect," & required end if '---------------------------------------------------------------------------------------------------- 'verify the referer '---------------------------------------------------------------------------------------------------- referer = request.ServerVariables("HTTP_REFERER") referer = split(referer,"/") url_verified = "no" for icounter = Lbound(url) to Ubound(url) ' if referer(2) = url(icounter) then url_verified = "yes" end if next if not url_verified = "yes" then response.write("The url specified is invalid!") response.End end if '---------------------------------------------------------------------------------------------------- 'verify the recipient(not tested) '---------------------------------------------------------------------------------------------------- 'trimed_referer = split(referer(2),".")' 'response.write recipient & "<br>" & referer(2) & "=" & trimed_referer(0) & "<br>" 'if trimed_referer(0) = "www" then ' if InStr(1,recipient,trimed_referer(1),1) = 0 then ' response.write "recipient don't match the referer" ' response.end ' end if 'else ' if InStr(1,recipient,trimed_referer(0),1) = 0 then ' response.write "recipient don't match the referer" ' response.end ' end if 'end if '---------------------------------------------------------------------------------------------------- 'retrieve form contents and create email fields '---------------------------------------------------------------------------------------------------- query = Request.ServerVariables("QUERY_STRING") query = split(query,"&") query3 = split(required,",") For iLoop = Lbound(query) to UBound(query) query2 = split(query(iloop),"=") '---------------------------------------------------------------------------------------------------- 'form validation, checks required fields are not null '---------------------------------------------------------------------------------------------------- for i = LBound(query3) to UBound(query3) if query3(i) = query2(0) then if query2(1) = "" then response.write ("you must enter a valid ") & query2(0) response.end end if end if 'if query2(0) = "agree" then 'if query2(1) <> "on" or query2(1) = "" then ' response.write("You must agree to terms and conditions to enable Formmailv1.3 to execute!") 'response.end 'end if 'end if '---------------------------------------------------------------------------------------------------- 'form validation, checks a valid email address has been specified '---------------------------------------------------------------------------------------------------- if query2(0) = "email" then trim(query2(0)) if len(query2(1))<8 then response.Write("You must specify a valid ") & query2(0) response.end end if if instr(query2(1),"@")=0 and instr(query2(1),".")=0 then response.write query2(1) response.Write("You must specify a valid ") & query2(0) response.end end if strEmail1 = split(query2(1),"@") if len(strEmail1(0))<3 then response.Write("You must specify a valid ") & query2(0) response.end end if strEmail2 = split(strEmail1(0),".") if len(strEmail2(0))<3 then response.Write("You must specify a valid ") & query2(0) response.end end if if len(strEmail2(1))<2 then response.Write("You must specify a valid ") & query2(0) response.end end if end if '---------------------------------------------------------------------------------------------------- 'form validation, checks terms and conditions checkbox has been ticked '---------------------------------------------------------------------------------------------------- Next if not query2(0) = "recipient" and not query2(0) = "redirect" and not query2(0) = "subject" and not query2(0) = "realname" and not query2(0) = "email" and not query2(0) = "required" and not query2(0) = "agree" then strBody = strBody & vbnewline & vbnewline & query2(0) &": " & query2(1) end if Next if email = "" then email = "formmail@" & referer(2) end if '---------------------------------------------------------------------------------------------------- 'replaces any special characters parsed through the query string '---------------------------------------------------------------------------------------------------- strbody = replace(strbody, "+"," ") strbody = replace(strbody, "%26%238364%3B","€") strbody = replace(strbody, "%A1","¡") strbody = replace(strbody, "%A3","£") strbody = replace(strbody, "%A8","¨") strbody = replace(strbody, "%AA","ª") strbody = replace(strbody, "%AC","¬") strbody = replace(strbody, "%B4","´") strbody = replace(strbody, "%B7","·") strbody = replace(strbody, "%BA","º") strbody = replace(strbody, "%BF","¿") strbody = replace(strbody, "%C7","Ç") strbody = replace(strbody, "%E7","ç") strbody = replace(strbody, "%0D%0A",vbnewline) strbody = replace(strbody, "%21","!") strbody = replace(strbody, "%23","#") strbody = replace(strbody, "%24","$") strbody = replace(strbody, "%25","%") strbody = replace(strbody, "%26","&") strbody = replace(strbody, "%27","'") strbody = replace(strbody, "%28","(") strbody = replace(strbody, "%29",")") strbody = replace(strbody, "%2B","+") strbody = replace(strbody, "%2C",",") strbody = replace(strbody, "%2D","-") strbody = replace(strbody, "%2E",".") strbody = replace(strbody, "%2F","/") strbody = replace(strbody, "%3A",":") strbody = replace(strbody, "%3B",";") strbody = replace(strbody, "%3C","<") strbody = replace(strbody, "%3D","=") strbody = replace(strbody, "%3E",">") strbody = replace(strbody, "%3F","?") strbody = replace(strbody, "%5B","[") strbody = replace(strbody, "%5C","\") strbody = replace(strbody, "%5D","]") strbody = replace(strbody, "%5E","^") strbody = replace(strbody, "%5F","_") strbody = replace(strbody, "%60","`") strbody = replace(strbody, "%7B","{") strbody = replace(strbody, "%7C","|") strbody = replace(strbody, "%7D","}") strbody = replace(strbody, "%7E","~") strbody = replace(strbody, "%C3%A6","æ") strbody = replace(strbody, "%C3%B8","ø") strbody = replace(strbody, "%C3%A5","å") strbody = replace(strbody, "%C3%86","Æ") strbody = replace(strbody, "%C3%98","Ø") strbody = replace(strbody, "%C3%85","Å") '---------------------------------------------------------------------------------------------------- 'this creates the body of the mail message, the text in quotes can be modified accordingly '--------------------------------------------------------------------------------------------------- strBody = "Dette er resultatet fra " & referer(2) & vbnewline & vbnewline & "Navn: " & realname & vbnewline & vbnewline & "E-post: " & email & vbnewline & strBody & vbnewline & vbnewline & "##### Skjema slutt #####" '---------------------------------------------------------------------------------------------------- 'checks if a smtp port has been specified, if not it uses the default port 25 '---------------------------------------------------------------------------------------------------- if intport <> 25 then intport = intport else intport = 25 end if '---------------------------------------------------------------------------------------------------- 'send the mail message '---------------------------------------------------------------------------------------------------- set objMessage = CreateObject("CDO.Message") objMessage.To = recipient objMessage.From = email objMessage.Subject = subject objMessage.Sender = email objMessage.Textbody = strBody '---------------------------------------------------------------------------------------------------- 'cdosys configuration setup '---------------------------------------------------------------------------------------------------- set objConfig = CreateObject("CDO.Configuration") objConfig.Fields(cdoSendUsingMethod) = cdoSendUsingPort objConfig.Fields(cdoSMTPServer) = strServer objConfig.Fields(cdoSMTPServerPort) = intPort objConfig.Fields(cdoSMTPAuthenticate) = cdoAnonymous objConfig.Fields.Update set objMessage.Configuration = objConfig '---------------------------------------------------------------------------------------------------- 'define error handling procedures '---------------------------------------------------------------------------------------------------- On Error Resume Next objMessage.Send If Err.Number = 0 then response.write("Formmail v1.3 processed all operations successfully!") else response.write("Formmail v1.3 detected the following errors:")& "<br>" response.write("error no.: ")&err.number & "<br>" response.write("description: ")&err.description & "<br>" response.end End If On Error Goto 0 '---------------------------------------------------------------------------------------------------- 'send them to the page specified '---------------------------------------------------------------------------------------------------- Response.Redirect redirect '#################################################################################################### Så greia er at jeg trenger å kunne sende resultatet fra formmail.asp til e-posten i HTML ikke ren tekst, så jeg tenker at dette området må konfigureres this creates the body of the mail message, the text in quotes can be modified accordingly '--------------------------------------------------------------------------------------------------- strBody = "Dette er resultatet fra " & referer(2) & vbnewline & vbnewline & "Navn: " & realname & vbnewline & vbnewline & "E-post: " & email & vbnewline & strBody & vbnewline & vbnewline & "##### Skjema slutt #####" strBody er alle variable + ID fra skjemaet. Så vi trenger at disse først går igjennom template.html, og så bli sendt til e-posten vår. Er fortsatt på leting etter ett alternativ på nettet, men finner faktisk ikke en eneste siden som kan levere form-resultat som html, eller Lenke til kommentar
MailMan13 Skrevet 19. februar 2010 Del Skrevet 19. februar 2010 (endret) Ser ut som den bare konkatenerer sammen alle argumentene i en streng med dobbelt linjeskift mellom hver entry. Du sier HTML-mal? Det høres ut som det er en eller annen custom template/merge operasjon dere har hatt i PHP da? Man kan normalt ikke merge inn dynamiske felter direkte i HTML, det bruker man normalt XSLT til. Her kan man enten lage seg en XSLT stylesheet og serialisere dataene som XML, eller, om man føler seg "skitten", hardkode inn html rett i koden (der det står "strBody = ...") Disclaimer: Dette er ikke ett eksempel på god kodeskikk, men en nødløsning om man vil rydde litt opp med minimale kunnskaper og ressursbruk. Som en "Quickfix" kan du begynne med å tilordne strBody til objMessage.HtmlBody i stedet for objMessage.TextBody. Da vil meldingen bli kodet som html "Automagisk". Da må selvfølgelig også alle vbNewLine erstattes med "<br />". Hvis du da i tillegg legger alle argumentene i en tabell: if not query2(0) = "recipient" and not query2(0) = "redirect" and not query2(0) = "subject" and not query2(0) = "realname" and not query2(0) = "email" and not query2(0) = "required" and not query2(0) = "agree" then strBody = strBody & "<tr><td>" & query2(0) &"</td><td>" & query2(1) & "</td></tr>" end if Og til slutt: strBody = "Dette er resultatet fra " & referer(2) & "<br /><br />" & "Navn: " & realname & "<br /><br />" & "E-post: " & email & "<br />" & "<table>" &strBody & "</table>" & "<br /><br />" & "##### Skjema slutt #####" Endret 19. februar 2010 av MailMan13 Lenke til kommentar
backup Skrevet 21. februar 2010 Del Skrevet 21. februar 2010 Når man bruker CreateObject("CDO.Message") brukes HTMLbody hvis meldinga skal inneholde html-tags Lenke til kommentar
luckylight Skrevet 28. februar 2010 Del Skrevet 28. februar 2010 Det er en relativt enkel oppgave å sende mail av denne typen med asp.net. Ta en titt på linkene under: http://www.c-sharpcorner.com/UploadFile/dchoksi/SendingMail02132007002923AM/SendingMail.aspx Min lenkehttp://www.4guysfromrolla.com/articles/072606-1.aspx Den "asp-koden" som du viste til som eldgammel er gammel asp og ikke aspx som er standard nå. Lykke til! Lenke til kommentar
brgr Skrevet 1. mars 2010 Del Skrevet 1. mars 2010 Du kan lese innholdet i HTML-filen til en streng, som du kjører replace på mot formen som ble sendt av brukeren for så å sende output til jobb eposten. Er det ASP.Net støtte? Eller bare gammeldags ASP støtte? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå