Salve a tutti, ho reso un sito da html a asp, senza pretese eh, anche perchè ho dovuto scegleire asp per questioni di hosting ed è un linguaggio che non conosco così ho dovuto imparar le due cose che mi servivano...

Ora mi trovo a dover organizzare un form di contatto (quelli del tipo "lavora con noi") e la realtiva pagina che cattura i dati dal form e li invia via email.

Ho alcuni problemi da risolvere e quindi vi posto i codici.
Premetto che in questo form nella sua parte centrale deve cambiare a seconda della pagina d provenienza (e questa cosa accade correttamente) perchè vengono visualizzati alcuni campi se la persona che compila il form si sta proponendo per il lavoro nella parte commerciale, tecnica o di rivenditore (alcuni esempi...).

Ecco i codici: (per comodità di forum dei campi che la pagina raccoglie correttamente metto solo i fondamentali, altri li ometto lasciando spazio a quelli che mi creano problemi)


Il form:
Codice PHP:

<form method="post" name="inviacurriculum" id="inviacurriculum" action="inviomail.asp" >
    <
fieldset id="anagrafe">
        <
legend>[b]DATI PERSONALI[/b]</legend>
        <
label for="cognome">* Cognome: </label> <input name="cognome" size="30" tabindex="1" id="cognome" />
        <
label for="email">* E-mail: </label> <input name="email" size="30" tabindex="6" id="email" /> 
        <
label for="cognome">* Tel: </label> <input name="tel" size="30" tabindex="7" id="telefono" /> [no spazi o separatori]
    </
fieldset>

(
omessi dati come nomesesso ecc che non servivano qui)
    
    

  
  
      <
fieldset id="ruolo">
  
        <
legend>[b]RUOLO[/b]</legend>


        


<%if 
request("jobform")="formcommerciale" then %>
    <
input name="tipo_contatto" type="hidden" value="contatto_commerciale" />

(
questo campo lo ho messo per capire dopo nell'invio email che sezione specifica devo controllare e quindi inviare per email solo i campi di quella sezione)

    <label for="arealavoro">Area di lavoro: </label> [b] COMMERCIALE [/b] 


    <label for="lingue">Lingue straniere conosciute: (se di sufficiente livello sia scritto che orale)</label> 

        <input name="lingua" id="lingua" type="checkbox" tabindex="8" value="Inglese" /> Inglese 

        <input name="lingua" id="lingua" type="checkbox" tabindex="8" value="Francese" /> Francese 

        <input name="lingua" id="lingua" type="checkbox" tabindex="8" value="Tedesco" /> Tedesco 

Olandese 

        <input name="lingua" id="lingua" type="checkbox" tabindex="8" value="Altro" /> Altro (specificare nel campo Note) 

  </fieldset>

<%end if%>




<%if request("jobform")="formtecnico" then %>
    <input name="tipo_contatto" type="hidden" value="contatto_tecnico" />

    <label for="arealavoro">Area di lavoro: </label> [b] TECNICO [/b] 


<%end if%>




<%if request("jobform")="formrivenditore" then %>

    <input name="tipo_contatto" type="hidden" value="contatto_rivenditore" />
    
    <label for="arealavoro">Area di lavoro: </label> [b] RIVENDITORE DI ZONA [/b] 


    
    <label for="regione">Regione:</label> 

        <input name="regione" id="regione" type="checkbox" tabindex="8" value="Abruzzo" /> Abruzzo 

        <input name="regione" id="regione" type="checkbox" tabindex="8" value="Calabria" /> Calabria 

        <input name="regione" id="regione" type="checkbox" tabindex="8" value="Campania" /> Campania 

        <input name="regione" id="regione" type="checkbox" tabindex="8" value="Emilia-Romagna" /> Emilia-Romagna 

        [ecc ecc]
        <input name="regione" id="regione" type="checkbox" tabindex="8" value="Estero" /> STATI ESTERI (specificare nella sezione Note) 


<%end if%> 
 
 
  

              

            <label for="note">Note</label>

                  <textarea id="note" cols="60" rows="10" tabindex="9"> </textarea>
            


            
            <label for="carica">Carica il tuo Curriculum Vitae:</label> <input name="upload" type="file" id="file" tabindex="10" size="30" />
    
    </fieldset>
  



  
  <fieldset id="autorizza">

      <input type="submit" id="submit" tabindex="11" value="Invia richiesta" />
      <input type="reset" id="reset" tabindex="12" value="Cancella" />
  
  </fieldset>

</form> 



Bene, ora la relativa pagina INVIOMAIL.ASP. Il codice non è mio ma son partito da una base trovata in internet a cui ho aggiunto i campi che mi servivano e iserito gli if di controllo e il body della mail.

Codice PHP:
<%
Option Explicit

dim fCognome
fNomefSessofDatanascitafEmailfTelfTipocontattofNote
(alcuni campi non li vedete nel form di prima perchè tanto li legge correttamente e ho risparmiato righe inutili da farvi leggere)


fCognome Request.Form("cognome")
fNome Request.Form("nome")
fSesso Request.Form("sesso")
fDatanascita Request.Form("datanascita")
fEmail Request.Form("email")
fTel Request.Form("tel")
fTipocontatto Request.Form("tipo_contatto")  [legge il campo hidden di cui parlavo sopra per indicare nella mail per che sezione lavorativa si propone la persona]
fNote Request.Form("notevarie")

[
manca la cosa dell'allegare il file che non so come si fa con asp]




if fTipocontatto="contatto_commerciale" then
    dim fLingua

    fLingua = Request.Form("lingua")
end if


'
if fTipocontatto="contatto_tecnico" then
[devo ancora decidere qui che campi inserire per la parte tecnica così intanto lascio il codice commentato]
'end if


if fTipocontatto="contatto_rivenditore" then
    dim fRegione

    fRegione = Request.Form("regione")
end if


response.write fCognome + "  " + fNome + "  " + fSesso + "  " + fDatanascita + "  " + fEmail + "  " + fTel + "  " + fTipocontatto + "  lingua:" + fLingua + "  regione:" + fRegione + " note:" + fNote


dim oMail
Set oMail = Server.CreateObject("CDONTS.NewMail")
oMail.To = "***@***.it"
oMail.From = "+++@+++.it"
oMail.Subject = "email di prova"



oMail.Body = "Nuova proposta 

" &_ 
    "Tipo di contatto: " + fTipocontatto + "

" &_
    
    "Cognome: " + fCognome + "
" &_
    "Nome: " + fNome + "
" &_
    "Sesso: " + fSesso + "
" &_
    "Data di nascita: " + fDatanascita + "
" &_
    "Email: " + fEmail + "
" &_
    "Tel: " + fTel + "


" &_
    
    
    
    "Informazioni specifiche di sezione: 
"
    
    if fTipocontatto = "contatto_commerciale" then
        oMail.Body = oMail.Body + "Lingue conosciute: " + fLingua + "
"
    end if
    
    
    '
if fTipocontatto "contatto_tecnico" then
    
    
'end if
    
    
    if fTipocontatto = "contatto_rivenditore" then
        oMail.Body = oMail.Body + "Zone di interesse: " + fRegione + "
"
    end if
    
    
    oMail.Body = oMail.Body + "

" &_
    
    "Note: " + fNote + "

" &_
    
    "FINE DATI EMAIL"


oMail.Importance = 1 ' 
0=bassa1=normale 2=alta
oMail
.BodyFormat ' 0=HTML, 1=testo
oMail.MailFormat = 1 ' 
0=MIME 1=testo
oMail
.Send
Set oMail 
Nothing
response
.write "Messaggio inviato"
%> 
Ora i problemi che ho sono:

1. quando invio il form a video come vedete stampo (per controllo in fase di progettazione) i dati letti dal form. Lui legge le lingue e le regioni, quindi riconosce le "sezione di provenienza" (commerciale ecc) però non legge la textarea note, anche se nel form scrivo qualcosa nella textarea Note lui non me la stampa dopo a video, quindi non la riceve e non capisco il perchè.

2. sempre quando premo invia nel form a video compare sempre un errore,
Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'Body'

inviomail.asp, line 75
che si riferisce in questo caso alla porzione di codice con l'ultimo if di controllo (in base alla sezione ovviamente), in sto caso
Codice PHP:
if fTipocontatto "contatto_rivenditore" then
        oMail
.Body oMail.Body "Zone di interesse: " fRegione "
"
    
end if 
sempre qualla dove c'è sto oMail.Body insomma... e non capisco cosa sia.
i "&_" servono per andare a capo con il codice e non credo sia sbagliato quello, no?

3. Non invia la mail perchè non stampa mai a video la conferma e quindi non esegue nemmeno l'istruzione "response.write "Messaggio inviato" "

4. la mail, impostata come html dal parametro "oMail.BodyFormat = 0 ' 0=HTML, 1=testo" ho provato una volta a levare tutti gli if di controllo che danno problemi (vedi punto 2) e non mi arriva come html, ossia io nel testo della mail leggo "
" quando invece dovrei vederne il risultato, ossia un a capo. Come mai?

5. Non ho idea di come si possa fare per l'allegare un file, ma prima spero di poter risolvere gli altri 4 punti



So che ho scritto tanto e lungo ma ho cercato di essere il più chiaro possibile, se non ho ben spiegato qualcosa ditemelo che cercherò di chiarire.

Spero che qualcuno mi aiuti così che riesca a risolvere