Inviare il contenuto di un form come allegato email

20 marzo 2006

Combinando insieme l’uso di alcuni oggetti e funzioni comuni in ASP è possibile inviarevia email il contenuto di una form . Non solo, in questo caso vedremocome inviarla in allegato dopo averne scritto le informazioni in un file di testo.

Se a primo impatto il tutto può sembrarvi complesso niente panico.Come in qualsiasi problema difficile, la prima cosa da fare è suddividereil tutto in semplice step più facili da completare.

Per realizzare il nostro sistema dovremo quindi

  1. Creare una form per inviare i dati
  2. Eseguire un controllo sull’invio della form
  3. Raccogliere le informazioni dalla form
  4. Creare il file di testo
  5. Scrivere le informazioni raccolte nel file
  6. Scrivere l’email
  7. Allegare il file ed inviare l’email
  8. Decidere se mantenere o rimuovere il file

I passi sono volutamente numerosi perché è bene descriveredettagliatamente tutte le operazioni per non perderci per strada, mavedremo come il tutto si riassume in poche righe.

Form di invio

Il primo passo è creare una form di invio . Sono esempiclassici un modulo di contatto o un modulo per preventivi. Nel nostro caso, persemplificare il tutto, creeremo una form con 2 campi di testo ed una textareache conterranno rispettivamente il nome, cognome ed un commento.

<form name=”frmEmail” method=”post” action=”?send=1″>
<br />Nome
<br /><input type=”text” name=”nome” value=”” />
<br />Cognome
<br /><input type=”text” name=”cognome” value=”” />
<br />Commento
<br /><textarea name=”commento”></textarea>
<br /><input type=”submit” name=”submit” value=”invia” />
</form>

L’action della form, ovvero la pagina di raccolta delle informazioni come è possibilenotare è la stessa della form a cui aggiungiamo per semplificare il controlloun valore in querystring che ci permetta di verificare se dobbiamo inviare ilmodulo o mostrarlo.

Raccolta ed invio dei dati

Il passo successivo è controllare ad inizio pagina se la form è stata inviata . Come detto in precedenza infatti il codice di invio dell’email ed il modulo sono inseriti per comodità nello stesso file.

È quindi necessario far conoscere al webserver quale azione deve intraprendere.

Per far ciò ad inizio pagina eseguiamo un controllo se è presente la variabile in querystring prima definita e se il bottone della form è stato premuto. In caso affermativo procederemo all’invio dell’email, in caso negativo mostreremo il modulo di invio.

Per semplicità possiamo appoggiarci ad una variabile per gestire il controllo. Se la form è stata inviata la variabile conterrà un messaggio di conferma. Nel corpo del file sarà sufficiente controllare la lunghezza di questa variabile. Se maggiore di 0 allora stamperemo il messaggio. Se minore o uguale a 0 sarà mostrare il modulo per permettere all’utente di compilare i campi ed inviarlo.

Riassumento possiamo procedere in questo modo:

if Request.Querystring(“send”) = 1 AND Len(Request.Form(“submit”)) > 0 then

‘ codice per la creazione del file
‘ scrittura dei contenuti
‘ ed invio email

‘ messaggio di conferma
strMessage = “<p>L’email è stata inviata correttamente.<br />”
strMessage = strMessage & “Il contenuto della form è stato allegato all’email.</p>”

end if



‘ nel corpo del documento eseguiamo il controllo
‘ se mostrare la conferma o il modulo
‘ verificando la lunghezza della variabile

if Len(strMessage) > 0 then
Response.Write(strMessage)
else

‘ mostra la form prima creata

end if
%>

Se vuoi aggiornamenti su Inviare il contenuto di un form come allegato email inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Inviare il contenuto di un form come allegato email

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy