asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 13569
ASPCode.it - Store

  > > Articoli

Inviare E-Mail da una Form utilizzando CDONTS

Data di pubblicazione: 22/04/2001        Voto della community: 3,47 (Votanti: 12)


Capita spesso di voler raccogliere i dati immessi in una form e, basandosi su tali dati, inviare una mail ad un utente che, per esempio, potrebbe avere immesso il suo indirizzo di posta elettronica proprio in tale form. In questo articolo mostrerò come fare ciò.

Per la visualizzazione della form di immissione dati e per l'invio dell'e-mail è sufficiente realizzare un'unica pagina asp nella quale vi sarà un controllo sulla scelta dell'operazione che deve essere eseguita:

  - mostrare la form di immissione dati, oppure
  - raccogliere i dati dalla form ed inviare la mail

Ecco il codice del file FormMail.asp:

<html>
<head>
<title> Invio di una e-mail da una form </title>
</head>
<body bgcolor="#dcdcdc">

<%

'Se alla pagina viene inviata la form con i dati...

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 "<CENTER><H2>E-mail inviata!<H2></CENTER>"
else

'altrimenti visualizza la Form

%>

<h1><center>Form per invio e-mail</center></h1><br>
<form action=formmail.asp method=post>
  <table border=1 align=center>
    <tr>
      <td>
      <b>MITTENTE</b>
      </td>
      <td>
      <input type="text" name="mittente" size="30" maxlength="30"><br>
      </td>
    </tr>
    <tr>
      <td>
      <b>DESTINATARIO</b>
      </td>
      <td>
      <input type="text" name="destinatario" size="30 maxlength="30"><br>
      </td>
    </tr>
    <tr>
      <td>
      <b>OGGETTO</b>
      </td>
      <td>
      <input type="text" name="oggetto" size="30" maxlength="30"><br>
      </td>
    </tr>
    <tr>
      <td colspan=2 align=center>
      <b>MESSAGGIO</b><br>
      <textarea name="messaggio" rows="8" cols="42"></textarea>
      </td>
    </tr>
    <tr>
      <td colspan=2 align=center>
      <input type="submit" name="invia_btn" value="INVIA">
      </td>
    </tr>
  </table>
</form>

<%
end if
%>

</body>
</html>

Come potete notare, la prima istruzione ASP della pagina è la seguente:

    if Request.Form("invia_btn") = "INVIA" then . . .

In questo passaggio viene controllato se alla pagina è stata inviata una form nella quale è presente un elemento "invia_btn" di valore "INVIA". Nel caso che tale condizione sia verificata, viene creato un oggetto Mail con le istruzioni:

    Dim Mail
    Set Mail = Server.CreateObject("CDONTS.NewMail")

A questo punto, i dati inviati dalla form, vengono raccolti e inseriti come valori delle proprietà dell'oggetto appena creato; tali proprietà sono: From, To, Subject, Body.

Nella riga successiva viene stabilito il tipo di priorità che avrà la e-mail; in questo caso abbiamo scelto 1 che corrisponde a una priorità normale; le altre due opzioni disponibili sono: 0: priorità bassa, 2: priorità alta.

Ora, il punto chiave del codice, nel quale si ha l'effettivo invio della e-mail:

    Mail.Send

Le righe di codice che seguono l'invio della e-mail, distruggono l'oggetto Mail, e visualizzano sul browser un messaggio di conferma dell'invio della stessa.

Come abbiamo specificato sopra, tutto ciò viene effettuato solo nel caso che la pagina FormMail.asp venga richiamata tramite l'invio della form. Se, al contrario, la pagina viene lanciata normalmente, non verrà creato alcun oggetto Mail, ma bensì verrà visualizzata la form per l'immissione dati con il bottone di tipo submit. Una volta riempiti i campi e premuto il pulsante INVIA la form verrà inviata allo script stesso per l'invio della e-mail.




Utenti connessi: 13569