webForumDet fria alternativet

Rätt ordning i mail

ASP

12 svar · 365 visningar · startad av Gustav

Medlem sedan jan. 20001 932 inlägg
Frågan#1

Tja! (tillbaks igen efter semestern)

Jag har precis blivit tvungen att gå över från Perl till Asp då min chef tyckte att detta var det enda rätta. (jag är nog tvungen att hålla med honom)

Men när jag ska skicka mail med Jmail hamnar alla formulär-fält i fel ordning.

Jag vet att man kan bestämma ordningen mha en lista men jag hade tänkt att slippa detta... ;)

Finns det inget sätt som gör att man helt enkelt skriver in att fälten ska hamna i samma ordning som de står i på html-sidan?
Eller kanske att det skulle gå att bara bestämma ordningen genom att skriva 1, 2, 3 osv i varje <input>-tagg.

Nån som vet?

Medlem sedan aug. 20012 349 inlägg
#2

trodde de kom i samma ordning, de brukar väl göra det??? :o :q

Annars så får du väl göra det manuellt, dvs stoppa in dem i mailet i den ordningen du vill ha det. Med en select case sats eller genom att veta vad alla heter... :e

------------------
If you're talking like a bitch, I'm gonna slap you like a bitch!

Medlem sedan juli 20015 107 inlägg
#3

Hur ser din kod ut :?

------------------
- Listen, Iam a police officer if you kill me you are an dead man..
- No, you got that wrong, if i kill you you are a dead man

[Redigerat av Cannabis_Tomten den 20 aug 2001]

Medlem sedan jan. 20001 932 inlägg
#4

Select case-sats??? :e

Ja, här kommer iaf formuläret och sen mailgeneratorn (sendmail.asp).

Själva formuläret då (lite kladdigt):

<form METHOD="POST"
ACTION="sendmail.asp">
<br><b>Klicka i önskat alternativ nedan </b>
<p><input TYPE="checkbox" NAME="GBG_24_till_25_apr" VALUE="CHECKED">Jag
önskar gå den öppna kursen i Göteborg 24 - 25 april.
<br><input TYPE="checkbox" NAME="GBG_13_till_14_nov" VALUE="CHECKED">Jag
önskar gå den öppna kursen i Göteborg 13 - 14 november.
<p><input TYPE="checkbox" NAME="Jag_vill_ga_kursen_vid_ett_annat_tillfalle_kontakta_mig" VALUE="CHECKED">Jag
önskar gå kursen vid en annan tidpunkt eller plats, kontakta
mig.
<br><input TYPE="checkbox" NAME="Onskar_internkurs_vill_ha_separat_offert" VALUE="CHECKED">Vi
önskar en internkurs för vår personal enligt separat offert,
kontakta oss. 
<br><input TYPE="checkbox" NAME="Onskar_info_om_lastsakr_for_sjobefal_kontakta_oss" VALUE="CHECKED">Vi
önskar information om lastsäkringskurser för sjöfolk
och stuveriarbetare,    <font color="#FFFFFF">___</font>kontakta
oss. 
<br> </td>
</tr>
</table>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="610" >
<tr ALIGN=LEFT VALIGN=TOP>
<td WIDTH="110"></td>

<td WIDTH="500"><b>Ditt namn:</b>
<br><input TYPE="text" NAME="Namn">
<br><b>Företag:</b>
<br><input TYPE="text" NAME="Foretag">
<br><b>Adress:</b>
<br><input TYPE="text" NAME="Adress">
<br><b>Postnummer och ort:</b>
<br><input TYPE="text" NAME="Postnrort">
<br><b>Telefon:</b>
<br><input TYPE="text" NAME="Telefon">
<br><b>Telefax:</b>
<br><input TYPE="text" NAME="Telefax">
<br><b>E-mail:</b>
<br><input TYPE="text" NAME="Email">
<br><b>Kommentar:</b>
<br><textarea NAME="Kommentar" ROWS=10 COLS=40></textarea>
<br><b>Datum:</b>
<br><input TYPE="text" NAME="Datum">
<br><input TYPE="submit" VALUE=" Skicka"><input TYPE="reset" VALUE="Radera!"></form>

Sen kommer själva mailgeneratorn:

<%@LANGUAGE = VBSCRIPT%> <html>
<body>

<%

' 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 = Request.Form( "Email" )
msg.FromName = Request.Form( "Namn" )

' Note that as addRecipient is method and not
' a property, we do not use an equals ( = ) sign
msg.AddRecipient "gustav@mariterm.se", "Gustav Efraimsson"

' The subject of the message
msg.Subject = "Mail from the web"

'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.mariterm.se" ) then
    Response.write "<pre>" & msg.log & "</pre>"
else
    Response.write "Ditt mail har skickats!"
end if

' And we're done! the message has been sent.

%>
</body>
</html>

Som sagt...jag är ganska ny på det här med ASP. ;)

Medlem sedan aug. 20012 349 inlägg
#5

tja kommer det inte i rätt ordning får du väl göra det den tråkiga vägen:


msg.appendtext("Namn: " & Request.form("Namn")& vbcrlf )
msg.appendtext("Email: " & Request.form("email")& vbcrlf )
osv
osv
osv...

Du får lägga till dem i den ordningen du vill ha dem....

------------------
If you're talking like a bitch, I'm gonna slap you like a bitch!

Medlem sedan jan. 20001 932 inlägg
#6

Ja, jag börjar nästan se det oundvikliga i vitögat. :e

Tack ändå!

Medlem sedan dec. 19996 721 inlägg
#7

Det blir väl alldeles utmärkt med en liten lista? :)

<INPUT TYPE="HIDDEN" NAME="fieldlist" VALUE="Namn,Email">

arrList=split(request.form("fieldlist"),",")
for each strField in arrList
msg.appendtext(strField & ": " & Request.form(strField)& vbcrlf )
next
Medlem sedan jan. 20001 932 inlägg
#8

Det blev konstigt...det mailet som skickades innehöll typ 10 kopior av mailet. Plus att ett fält hamnade fel i alla fall... :(

Hur gör man för att automatiskt skicka ett mail till avsändaren som bekräftar att hans mail har blivit skickat?

Hur gör man för att ha kolla så att vissa fält är ifyllda och om dom är det så skickas man till en Tack-sida och om dom inte är det så skickas man till en Oops-sida! :e

Medlem sedan aug. 20012 349 inlägg
#9

förslagsvis så lägger man till avsändaren i cc fältet så får han ju en kopia om mailet om det går iväg :)

För att kolla fälten?
Antingen med javascript eller med en massa if (for each loop) satser i asp:

if request.form("etwas") = "" then
     response.redirect "felfelfel.asp"
else
    'send mail kod 
  response.redirect "rätträtträtt.asp" 
end if

javasript:

if(document.formnamn.fältnamn.value == ''){
alert('FELFELFEL!');
}

Typ. Mer info finnes på en miljon sidor på intenet om detta mycket vanliga problem.

[r]eh.. glömde .value i javascriptet[/r]

------------------
If you're talking like a bitch, I'm gonna slap you like a bitch!

[Redigerat av mrblonde den 21 aug 2001]

Medlem sedan jan. 20001 932 inlägg
#10

Emission:

Stämmer inte detta?

<%@LANGUAGE = VBSCRIPT%> <html>
<body>

<%

' 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 = Request.Form( "Email" )
msg.FromName = Request.Form( "Namn" )

' Note that as addRecipient is method and not
' a property, we do not use an equals ( = ) sign
msg.AddRecipient "gustav@mariterm.se", "Gustav Efraimsson"

' The subject of the message
msg.Subject = Request.Form( "Subject" )

'add every form element and its value to the email
FOR EACH el IN Request.Form
    msg.appendtext( el & ": " & Request.form(el) & vbcrlf )

arrList=split(request.form("fieldlist"),",")
for each strField in arrList
msg.appendtext(strField & ": " & Request.form(strField)& vbcrlf )

next

' Now send the message, using the indicated mailserver
if not msg.Send("mail.mariterm.se" ) then
    Response.write "<pre>" & msg.log & "</pre>"
else
    Response.write "Ditt mail har skickats!"
end if

' And we're done! the message has been sent.

%>
</body>
</html>

och...

<INPUT TYPE="HIDDEN" NAME="fieldlist" VALUE="Namn, Foretag, Adress, Postnrort, Telefon, Telefax, Email, Kommentar, Datum, GBG_24_till_25_apr, GBG_13_till_14_nov, Jag_vill_ga_kursen_vid_ett_annat_tillfalle_kontakta_mig, Onskar_internkurs_vill_ha_separat_offert, Onskar_info_om_lastsakr_for_sjobefal_kontakta_oss">

Fortfarande lite kladdigt ja... :e

Medlem sedan dec. 19996 721 inlägg
#11
FOR EACH el IN Request.Form
msg.appendtext( el & ": " & Request.form(el) & vbcrlf )

arrList=split(request.form("fieldlist"),",")
for each strField in arrList
msg.appendtext(strField & ": " & Request.form(strField)& vbcrlf )

next

Du har två for-loopar, varav bara den ena avslutas, och dessutom skulle detta innebära att fälten kommer med två gånger. Du behöver bara min loop.

Medlem sedan jan. 20001 932 inlägg
#12

Aha! *dum*

Nu förstår jag...det funkar!

Tack! :)

När vi ändå är inne på listor: Kan man inte skriva en Required-lista? Alltså en lista med de fält som MÅSTE vara ifyllda.

Medlem sedan dec. 19995 874 inlägg
#13

Det gör du enklast antingen genom en funktion som kollar alla fomulär om de är ifyllda eller inte, alternativt en funktion där du anger de fält som måste vara ifyllda och sedan kollar om de är tomma eller inte.
Sedan kollar du bara resultatet tav loopen, och handlar efter det.

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=19" TARGET=_blank>Skulle du äta på restaurang, om det var rökförbud?
</A>Varför blir mina isbitar inte lika klara som i reklamen?

252 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)