Inviare una e-mail tramite form con ASP
Lo script si compone di una sola pagina e per poterlo testare in locale si deve essere certi che sia installato sul proprio computer l'oggetto CDONTS.
L'acronimo CDO vuol dire Collaboration Data Objects ed è una libreria COM (Component Object Model Technologies) opportunamente creata per inviare e-mail attraverso il protocollo SMTP (Simple Mail Transfer Protocol) o Microsoft Exchange.
Passiamo adesso a vedere come e dove implementare il codice nella pagina. Supponiamo di voler chiamare il documento ASP con il nome inviomail.asp.
Poniamo all'inizio della pagina, prima di ogni altra cosa, la dichiarazione del linguaggio adottato: <%@LANGUAGE="VBSCRIPT"%>
Nel corpo della stessa, cioè tra i tag <body> e </body> dovremo scrivere:
<%
if Request.Form("invia_btn") = "INVIA" then
Dim Mail
Set Mail = Server.CreateObject("CDONTS.NewMail")
Mail.From = Request.Form("mittente")
Mail.To = Request.Form("destinatario")
Mail.Subject = Request.Form("oggetto")
Mail.Body = Request.Form("messaggio")
Mail.Importance = 1
Mail.Send 'invia la e-mail
Set Mail = nothing
Response.Write "<p>" & "E-mail inviata correttamente!" &"</p>"
Response.Write "<p><a href="/"InvioMail.asp"">"&"Clicca per inviarne ancora"&"</p>"
else
%>
Cosa vuol dire questo codice? Cominciamo dall'inizio e vediamo cosa è scritto.
Se avviene una richiesta tramite form su un oggetto chiamato "invia_btn" (ma possiamo chiamarlo anche pippo, purchè ci sia corrispondenza) allora istanzia una variabile (Dim) chiamata Mail. Dopo abbiamo la creazione vara e propria della suddetta variabile tramite l'oggetto CDO.
Le successive righe sono abbastanza esplicative:
- Mail.From = Request.Form("mittente")
- Mail.To = Request.Form("destinatario")
- Mail.Subject = Request.Form("oggetto")
- Mail.Body = Request.Form("messaggio")
- Mail.Importance = 1 > Priorità
- Mail.Send > invia la e-mail
- Set Mail = nothing > chiude l'oggetto mail per non consumare risorse sul server.
A questo punto apparirà un messaggio nel quale possiamo scrivere l'esito della mail stessa e se vogliao inviarne un'altra.
Al termine dello script dobbiamo costruire il form vero e proprio con i campi attraverso i quali inserire il mittente, il destinatario, l'oggetto ed il messaggio della mail. Logicamente i nomi dei campi di testo devo essere per forza corrispondenti ai nomi assegnati nello script per l'invio, altrimenti l'operazione non andrà a buion fine. Un esempio di form, ma senza formattazione potrebbe essere:
<form action="inviomail.asp" method="post">
<p>Mittente:<input type="text" name="mittente" size="25" /></p>
<p>Destinatario:<input type="text" name="destinatario" size="25" /></p>
<p>Oggetto:<input type="text" name="oggetto" size="25" /></p>
<p>Messaggio:<textarea name="messaggio" rows="10" cols="20"></textarea></p>
<p><input type="submit" name="invia_btn" value="INVIA" /></p>
</form>
Al termine del form bisogna chiudere l'if aperto immediatamente prima del tag relativo con:
<%
end if
%>
Questo è quanto ci permette di inviare una mail oppure un messaggio attraverso una pagina web.
| < Prec. | Succ. > |
|---|

