24 messaggi dal 15 novembre 2003
Ciao ragazzi, è possibile costruire un form dalla quale l'utente compila i campi necessari e una volta inviati, si inseriscono automaticamente in un documento word, che verrà inviato come allegato automaticamente all'indirizzo email inserito dall'utente?
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, benvenuto al forum,
vuoi realizzare un documento word (.doc) o .rtf?

La differenza è che un rtf è fondamentalmente un file di testo, con dei tag particolari. Per leggerlo non hai bisogno del parser di Word, ti basta filesystemobject.

Tu crea un file .rtf e in corrispondenza di dove devono andare nome, cognome, ecc ci metti dei segnaposto di questo tipo:

**NOME**

**COGNOME**

**INDIRIZZO**

e metti questo file in una cartella visibile dall'applicazione asp, diciamo in quella in cui si trova lo script stesso.

Tramite Request.Form, potrai recuperare i dati immessi dall'utente. Non ti resta che aprire l'rtf come file di testo, fare un replace, e inviarlo al client.

- Per aprire il file in lettura: usa filesystemobject
- per fare i replace... beh usa replace :)
- per inviarlo al client: non occorre risalvare il file con un altro nome, basta che lo invii al client forzando il download. Guarda questo esempio:
http://www.aspitalia.com/liste/usag/script.aspx?ID=524

se c'è qualcosa di ogni punto che non hai ben chiaro, fai un'altro post ciao
Modificato da BrightSoul il 15 novembre 2003 12.20 -

Enjoy learning and just keep making
24 messaggi dal 15 novembre 2003
QUESTO E' IL CODICE DELLLO SCRIPT, MA NON FUNZIONA...DOVE SBAGLIO?
<%
Dim strEmail
Dim strCognome
Dim strNome
Dim strComune
Dim strIndirizzo
Dim strProv
Dim strCap
Dim strTelefono
Dim strCellulare
Dim strNascita
Dim strgg
Dim strmm
Dim straaaa
Dim strNazione
Dim strCodfisc

Dim objCDOMail
strEmail = Request.Form("email")
strSubject = "oggetto"
strCognome = Request.Form("cognome")
strNome = Request.Form("nome")
strComune = Request.Form("comune")
strIndirizzo = Request.Form("indirizzo")
strProv = Request.Form("prov")
strCap = Request.Form("cap")
strTelefono = Request.Form("telefono")
strCellulare = Request.Form("cellulare")
strNazione = Request.Form("nazione")
strCodfisc = Request.Form("codfisc")
strgg = Request.Form("gg")
strmm = Request.Form("mm")
straaaa = Request.Form("aaaa")
strNascita = Request.Form("nascita")

'Per leggere il documento utilizzo FSO
Set fso = CreateObject("Scripting.FileSystemObject")

'doc.rtf e' il documento di base che contiene i tag
Set f = fso.OpenTextFile(Server.MapPath("doc.rtf"), 1)

'Leggo tutto il contenuto del documento
Documento = f.ReadAll

'chiudo subito
f.Close
Set f = Nothing

'ora sostituisco i TAG con i campi contenuti nella form

Documento = Replace(Documento, "[Nome]", strnome)
Documento = Replace(Documento, "[Cognome]", strcognome)



Set objCDOMail = Server.CreateObject("CDONTS.NewMail")
objCDOMail.AttachFile "doc.rtf"
objCDOMail.from = strEmail
objCDOMail.to = "info@sito.it"
objCDOMail.subject = strSubject
objCDOMail.body = " E' stata richiesta la registrazione del seguente sito.<br><br><b> DATI PERSONA FISICA</b><br><br><b> Cognome: </b>" & strCognome & " <br><b> Nome: </b> " & strNome & " <br><b> Luogo di nascita: </b>" & strNascita & " <br><b> nato il </b>" & strgg & "/"& strmm & "/" & straaaa & "<br><b> Codice fiscale: </b>" & strCodfisc & " <br><b> Indirizzo: </b>" & strIndirizzo & " <br><b> Cap: </b>" & strCap & " <br><b> Comune: </b>" & strComune & "<br><b> Provincia: </b>" & strProv & "<br><b> Nazione: </b>" & strNazione & "<br><b> Telefono: </b>" & strTelefono & "<br><b> Cellulare: </b>" & strCellulare

objCDOMail.MailFormat = 0
objCDOMail.BodyFormat = 0
objCDOMail.Send

Set objCDOMail = Nothing
%>
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
avevo tralasciato il fatto che volessi mandarlo come allegato. Infatti avevo risposto:

per inviarlo al client: non occorre risalvare il file con un altro nome,


invece hai bisogno di risalvare il modello modificato e poi specificarne il nuovo percorso quando fai:

objCDOMail.AttachFile "doc.rtf"

hai fatto tutto giusto fin qui:
Documento = Replace(Documento, "[Nome]", strnome)
Documento = Replace(Documento, "[Cognome]", strcognome)

ora non devi fare altro che salvare la variabile Documento su un altro file di testo:

Set f = fso.OpenTextFile(Server.MapPath("doc" & Session.SessionID & ".rtf"), 2) 
f.Write(Documento)
f.Close
set f = nothing


adesso hai salvato il modello modificato su un documento temporaneo. Puoi vedere che nel definire il nome di questo file ho usato la sessionID che è una stringa alfanumerica univoca. Questo serve solamente per evitare "guai" nel caso di più esecuzioni temporanee della stessa pagina.
Ora che hai questo nuovo file, cambia il percorso dell'attachment:

objCDOMail.AttachFile "doc" & session.sessionID & ".rtf" 


ah, non ho detto questo: se trovi intoppi nello scrivere il file temporaneo è perchè non hai i diritti di scrittura sulla cartella. Impostali da IIS.

Per ultimo, cancella il file temporaneo. Questa operazione di seguito la puoi omettere in un primo tempo, infatti dovresti controllare che il file sia stato creato correttamente, aprirlo e vedere che i contenuti al suo interno siano giusti.
Quando ti sei assicurato di questo, aggiungi queste linee in fondo, subito dopo Set objCDOMail = Nothing

fso.deleteFile Server.MapPath("doc" & Session.SessionID & ".rtf")


prova così, vedi se ricevi errori, ciao

Enjoy learning and just keep making
24 messaggi dal 15 novembre 2003
...ciao o seguito le tue istruzioni, ma mi da un errore 'IMPOSSIBILE TROVARE IL FILE" sulla riga -----Set f = fso.OpenTextFile(Server.MapPath("doc" & Session.SessionID & ".rtf"), 2) ---

dove sbaglio?... questo è tutto il codice

<%
Dim strEmail
Dim strCognome
Dim strNome
Dim strComune
Dim strIndirizzo
Dim strProv
Dim strCap
Dim strTelefono
Dim strCellulare
Dim strNascita
Dim strgg
Dim strmm
Dim straaaa
Dim strNazione
Dim strCodfisc

Dim objCDOMail


'Per leggere il documento utilizzo FSO
Set fso = Server.CreateObject("Scripting.FileSystemObject")

'doc.rtf e' il documento di base che contiene i tag
Set f = fso.OpenTextFile(Server.MapPath("doc.rtf"), 1)

'Leggo tutto il contenuto del documento
Documento = f.ReadAll

'chiudo subito
f.Close
Set f = Nothing

'ora sostituisco i TAG con i campi contenuti nella form
strEmail = Request.Form("email")
strSubject = "REGISTRAZIONE "
strCognome = Request.Form("cognome")
strNome = Request.Form("nome")
strComune = Request.Form("comune")
strIndirizzo = Request.Form("indirizzo")
strProv = Request.Form("prov")
strCap = Request.Form("cap")
strTelefono = Request.Form("telefono")
strCellulare = Request.Form("cellulare")
strNazione = Request.Form("nazione")
strCodfisc = Request.Form("codfisc")
strgg = Request.Form("gg")
strmm = Request.Form("mm")
straaaa = Request.Form("aaaa")
strNascita = Request.Form("nascita")

Documento = Replace(Documento, "[Nome]", strNome)
Documento = Replace(Documento, "[Cognome]", strCognome)
Documento = Replace(Documento, "[Comune]", strComune)
Documento = Replace(Documento, "[Indirizzo]", strIndirizzo)
Documento = Replace(Documento, "[Prov]", strProv)
Documento = Replace(Documento, "[Codfisc]", strCodfisc)
Documento = Replace(Documento, "[Nascita]", strNascita)
Documento = Replace(Documento, "[mm]", strmm)
Documento = Replace(Documento, "[gg]", strgg)
Documento = Replace(Documento, "[aaaa]", straaaa)

Set f = fso.OpenTextFile(Server.MapPath("doc" & Session.SessionID & ".rtf"), 2)
f.Write(Documento)
f.Close
set f = nothing

'Set f = fso.OpenTextFile(Server.MapPath("DOC2.rtf"), 2, True)

'f.Write Documento
'f.Close


Set objCDOMail = Server.CreateObject("CDONTS.NewMail")
objCDOMail.AttachFile "doc" & session.sessionID & ".rtf"
objCDOMail.from = strEmail
objCDOMail.to = "info@libero.it"
objCDOMail.subject = strSubject
objCDOMail.body = " E' stata richiesta la registrazione del seguente sito.<br><br><b> DATI PERSONA </b><br><br><b> Cognome: </b>" & strCognome & " <br><b> Nome: </b> " & strNome & " <br><b> Luogo di nascita: </b>" & strNascita & " <br><b> nato il </b>" & strgg & "/"& strmm & "/" & straaaa & "<br><b> Codice fiscale: </b>" & strCodfisc & " <br><b> Indirizzo: </b>" & strIndirizzo & " <br><b> Cap: </b>" & strCap & " <br><b> Comune: </b>" & strComune & "<br><b> Provincia: </b>" & strProv & "<br><b> Nazione: </b>" & strNazione & "<br><b> Telefono: </b>" & strTelefono & "<br><b> Cellulare: </b>" & strCellulare

objCDOMail.MailFormat = 0
objCDOMail.BodyFormat = 0
objCDOMail.Send

Set objCDOMail = Nothing
%>
11.886 messaggi dal 09 febbraio 2002
Contributi
Funziona così?
f = fso.OpenTextFile(Server.MapPath("doc" & Session.SessionID & ".rtf"), 2, True)

avevo tralasciato il ,True che ti crea il file se non esite...

Enjoy learning and just keep making
24 messaggi dal 15 novembre 2003
scusa se ti disturbo... cmq ho risolto i problemi dei permessi, ora mi da l'errore su objCDOMail.AttachFile "doc" & session.sessionID & ".rtf" ERRORE NON SPECIFICATO... cosa può essere?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.