Avatar billede tobbi Nybegynder
29. oktober 2001 - 21:37 Der er 3 kommentarer og
1 løsning

form mail sorter felter

hej har fået lavet følgende script til vidersendelse af en forms indhold på mail.

problemet er den smider felterne fra formen ind i mailen hulter til bulter.... så hvis nogen ved hvordan man kan ordne det i rækkefølge vil jeg blive glad !

script :

<%
\' Henter data fra formularer og tilbagemelder hvis der mangler data
error=0
\' Obligatoriske data
If Request(\"mail-server\")<>\"\" then
  MailHost = Request(\"mail-server\")
else
  Response.write \"The field \'\'mail-server\'\' is missing<br>\"
  error=1
end if

if request(\"mail-sendto\")<>\"\" then
  MailAddress = Request(\"mail-sendto\")
else
  Response.write \"The field \'\'mail-sendto\'\' is missing<br>\"
  error=1
end if

if request(\"mail-sender\")<>\"\" then
  MailFrom = Request(\"mail-sender\")
else
  Response.write \"The field \'\'mail-sender\'\' is missing<br>\"
  error=1   
end if
\' Slut Obligatoriske data

\' Stop hvis der er fejl
if error=1 then
  Response.write \"There were errors - mail not send!\"
  Response.end
end if

MailSubject = Request(\"mail-subject\")
MailRedir = Request(\"mail-redir\")

\' Sætter opdeleren imellem feltnavn og indhold
If Request(\"mail-delim\") <> \"\" then
  Delim=\" \" & Request(\"mail-delim\") & \" \"
else
  Delim=\" : \"
end if

\' Henter alle formulardata fra felter og lægger dem ned i body-delen af brevet
\' sorterer også \"mail-\" felter fra, så de ikke kommer til at stå i body
For Each FormField In Request.Form
    If instr(formfield,\"mail-\")=0 then
      MailText=MailText & FormField & Delim & Request.Form(FormField) & vbCrLf
    end if
Next
\' Slut indhentning af data

\' Opretter mailobjekt - i dette tilfælde JMail
Set Mail = Server.CreateObject(\"JMail.SMTPMail\")
Mail.ServerAddress = MailHost
Mail.Subject = MailSubject
Mail.AddRecipient MailAddress
Mail.Sender = MailFrom
Mail.Body = MailText

On Error Resume Next
\' Sender mail
Mail.Execute

\' Fejltjek
If Err <> 0 Then
  Response.write \"Error in mail delivery!<br>\"
  Response.write \"Error:\" & Err.Description
else
  \' Hvis der er redirect på redirectes der (duh!), ellers skrives der bare at mailen er afleveret
  If MailRedir <> \"\" then
    Response.redirect MailRedir
  else
    Response.write \"Mail delivered!\"
    Response.end
  end if
end if
%>
Avatar billede cliche Nybegynder
29. oktober 2001 - 21:44 #1
Hvad mener du, du kan jo ikke smide body i din text og omvendt, hvad mener du?
Avatar billede tobbi Nybegynder
29. oktober 2001 - 21:48 #2
hvis jeg fx har 3 felter i min form :

felt1
felt2
felt3

kommer det nogen gange til at stå sådan i mailen :
felt2
felt1
felt3

det skal bare skrives ud i rækkefølge i mailen, altså i bodyen.
Avatar billede pierrehusted Nybegynder
30. oktober 2001 - 09:00 #3
Det kan du f.eks. gøre ved at tage den et ad gangen :


SUB Tilfoej(byval feltnavn)
    If instr(feltnavn,\"mail-\")=0 then
      MailText=MailText & FormField & Delim & Request.Form(feltnavn) & vbCrLf
    end if
END SUB

Tilfoej(\"Navn\")
Tilfoej(\"Adresse\")
Tilfoej(\"Interesser\")
Tilfoej(\".....


Jeg tror ikke du kan få din For Each FormField In Request.Form til at sortere dem.
Så skal du hive feltnavnene over i en array og sortere dem deri - men det er også lidt at overdrive.
Avatar billede pierrehusted Nybegynder
30. oktober 2001 - 09:01 #4
    MailText=MailText & feltnavn & Delim & Request.Form(feltnavn) & vbCrLf
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