• Super User

    [ASP] Form prenotazioni (formattazione body E-mail)

    Ciao a tutti!!
    Da l'altro ieri mi sono avvicinata ad asp per un problema di form avendo rotto con il mio programmatore...ho creato una form di prenotazione i cui risultati mi vengono inviati in mail, tutto ciò l'ho fatto con asp...e lo sapete che è successo?? funziona!!
    Il problema, di certo non mio ma di chi mi ha chiesto la form, è che i risultati in mail sono leggibili ma le parole alle volte sono attaccate l'una all'altra e siccome la form ha molti campi da compilare automaticamente i risultati sono un accozzaglia di campi e di risposte che sono appiccicate l'una all'altra...se la form fosse per me la lascerei cosi perchè io ringrazio il cielo solo per esserci riuscita visto che il mio campo non è la programmazione, però il destinatario della form paga e non posso non dargli ciò che vuole e adesso non ho a disposizione un altro programmatore meno dispotico. Voi sapete come si fa ad impaginare i risultati?? Nel caso vi posto qui sotto la parte in asp...

     <%
    Dim IP
    IP=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
    If IP="" Then
      IP=Request.ServerVariables("REMOTE_ADDR")
    End If
        
    mittente = "[email protected]"
    
    messaggio = "Nome: " & Request.Form("nome") & chr(13) &_
    "Cognome: " & Request.Form("cognome") & chr(13) &_
    "Numero_telefono : " & Request.Form("numerotel") & chr(13)&_
    "numero_fax: " & Request.Form("numerofax") & chr(13) &_
    "email: " & Request.Form("email") & chr(13) &_
    "giorno: " & Request.Form("gg") & chr(13) &_
    "mese: " & Request.Form("mm") & chr(13) &_
    "anno: " & Request.Form("aa") & chr(13) &_
    "Aereoporto_arrivo: " & Request.Form("aereoportoarrivo") & chr(13) &_
    "Compagnia_num_volo: " & Request.Form("compagnianumvolo") & chr(13) &_
    "arrivo_porto: " & Request.Form("arrivoporto") & chr(13) &_
    "Compagnia_porto: " & Request.Form("compagnia_porto") & chr(13) &_
    "Num_passeggeri: " & Request.Form("numpasseggeri") & chr(13) &_
    "ora_arrivo: " & Request.Form("ora_due") & chr(13) &_
    "minuti_arrivo: " & Request.Form("minuti_due") & chr(13) &_
    "am_pm: " & Request.Form("pommat") & chr(13) &_
    "Data_partenza_gg: " & Request.Form("gg_due") & chr(13) &_
    "Data_partenza_mm: " & Request.Form("mm_due") & chr(13) &_
    "Data_partenza_aa: " & Request.Form("aa_due") & chr(13) &_
    "Aereoporto_di_partenza: " & Request.Form("aereoportodipartenza") & chr(13) &_
    "Compagnia_di_volo: " & Request.Form("comp_volo_due") & chr(13) &_
    "Partenza_porto_civitavecchia: " & Request.Form("partportocivi") & chr(13) &_
    "compagnia: " & Request.Form("compagnia") & chr(13) &_
    "passeggeri: " & Request.Form("passeggeri_due") & chr(13) &_
    "bagagli: " & Request.Form("bagagli_tre") & chr(13) &_
    "destinazione: " & Request.Form("destinazione") & chr(13) &_
    "Orario_partenza: " & Request.Form("ora_tre") & chr(13) &_
    "minuti_partenza: " & Request.Form("min_tre") & chr(13) &_
    "am_or_pm_partenza: " & Request.Form("pommat_tre") & chr(13) &_
    "Email: " & Request.Form("email") & chr(13)
    messaggio = messaggio & "Informazioni: " & Request.Form("info")& chr(13) & "INDIRIZZO ip: " & IP
    'Invio email
    Set Mail = Server.CreateObject("CDO.Message")
    Mail.To = mittente
    Mail.From = Request.Form("email")
    Mail.Subject = "Prenotazione Tour"
    Mail.TextBody = messaggio 
    Mail.Send 
    Set Mail = nothing
    %>
    

    Grazie a tutti!!


  • Moderatore

    Ciao!
    basta che sostituisci i chr(13) con la costante vbCrLf

    PS: leggi i regolamenti specifici su questa sezione sulle modalità di postare codice.

    :ciauz:


  • Super User

    Mi dispiace per come ho postato il codice.
    Grazie mille, mi sei stato di grande aiuto!!!
    La prox volta, e ci sarà di sicuro, posterò il codice in maniera corretta!
    Grazie!!


  • Super User

    Grazie per i consigli ma avrei una curiosità...
    Nel caso si desideri una pagina di riepilogo per l'utente sbadato che vuole rivedere tutto quello che ha scritto e nel cado editare?


  • Moderatore

    subito prima di inviare la mail (Mail.Send) basta un Response.write del messaggio compilato posto all'interno di una text area, cioè:

    
    Response.write "<textarea name=""riepilogo"">" & Messaggio & "</texarea>"
    
    

    Seguito da un pulsante "Invia" (<input type="Submit" vale="Invia">)

    :ciauz:


  • Super User

    Scusami, ma temo di non aver capito.
    Questo codice dove lo metto? Qui?

    Mail.To = mittente
    Mail.From = Request.Form("email")
    Mail.Subject = "Prenotazione Tour"
    Mail.TextBody = messaggio 
    qui??
    Mail.Send 
    Set Mail = nothing
    %>
    ``` L'ho messo nel codice asp della pagina di conferma e  appaiono i risultati ma la mail con i risultati della form parte appena si preme invio.
    Scusami se sto qui a rompere.
    Il tasto invio lo metto nella pagina di conferma dove attualmente risiede il codice asp?
    Scusami davvero, sono una di quelle che non ama rompere molto ma stavolta non ho colto al volo la risposta.

  • Moderatore

    Ciao,
    quello che voleva dirti Paocavo è che la mail non la devi spedire subito.
    Infatti prima fai passare l'utente dalla pagina di conferma e poi spedisci.
    In pratica ti crei un'altra pagina che fa da tramite, all'interno di questa pagina ci metti i campi hidden che contengono i valori del form in modo tale da non perdere i dati e poi la invii normalmente.

    ciao
    :ciauz:


  • Super User

    AAAAAHHH!!!!Adesso ho capito...scusatemi ancora! Vi ringrazio.
    Voglio provarci subito!!grazie ancora!!!