Antonio Feliziani
a- a+

E-Mail da pagine ASP.NET

L'ambiente .NET mette a disposizione degli sviluppatoriun nuovo oggetto per la gestione e l'invio di E-Mail dapagine ASP.NET: il System.Web.Mail.

La prima operazione da eseguire è l'importazionedel namespace System.Web.Mail:

<%@ Page Language="VB" %><%@ Import Namespace="System.Web.Mail" %>

 

Il codice per l'invio della Mail è relativamentesemplice ed intuitivo; viene creato un nuovo oggetto Mail cheutilizza le stesse proprietà che eranopresenti nel "vecchio" CDONTS: From, To, Cc,Bcc, Subject, Body:

  • From: contiene l'indirizzo Email del mittente
  • To: contiene l'indirizzo Email del destinatario
  • Cc: contiene l'indirizzo Email del destinatario per la Copia Conoscenza
  • Bcc: contiene l'indirizzo Email del destinatario per la Cc "nascosta"
  • Subject: contiene l'oggetto del messaggio che deve essere inviato
  • Body: contiene il testo del messaggio

Per inviare il messaggio basterà utilizzare ilmetodo  Send(oggetto)

Dim mail As New MailMessage  mail.From = txtFrom.Value  mail.To = txtTo.Value  mail.Cc = txtCc.Value  mail.Bcc = txtBcc.Value  mail.Subject = txtSubject.Value  mail.Body = txtBody.ValueSmtpMail.Send(mail)

 

Ora, è necessario inserire le istruzioni create,all'interno di una funzione che eseguiràl'invio del messaggio solo al verificarsi di undeterminato evento, ad esempio la pressione di un tasto.

 

<script language="VB" runat="server">Sub Button1_Click(sender As Object, e As EventArgs)  Dim mail As New MailMessagemail.From = txtFrom.Valuemail.To = txtTo.Valuemail.Subject = txtSubject.Valuemail.Body = txtBody.Value  SmtpMail.Send(mail)End Sub</script>

 

Alla pressione del tasto Submit, presente nella paginaASP.NET, verrà invocata l'esecuzione dellafunzione sopra indicata; un ultimo consiglio, per migliorarel'esecuzione del codice, è l'utilizzo delgestore delle eccezioni (Try ...Catch) che rappresenta una delle novitàintrodotte dal Framework .NET.

Attraverso il costrutto Try ... Catch è possibilegestire ed "intercettare" tutti gli eventualierrori che si potranno verificare durante l'esecuzionedella funzione di Invio Mail ed eseguire determinateistruzioni o visualizzare messaggi di errore:

 

<script language="VB" runat="server">Sub Button1_Click(sender As Object, e As EventArgs)Try   Dim mail As New MailMessage     mail.From = txtFrom.Value     mail.To = txtTo.Value     mail.Subject = txtSubject.Value     mail.Body = txtBody.Value  SmtpMail.Send(mail)  ' l'invio è andato a buon fine, quindi nascondo il form  form1.visible = false  lblAvviso.InnerHtml = "Il messaggio è stato inviato correttamente!"Catch exc As Exception  ' si è verificato un errore  lblAvviso.InnerHtml = "Errore nell'invio:<br>" & exc.ToStringEnd TryEnd Sub</script>

 

In dettaglio: l'istruzione Try cerca dieseguire il codice al suo interno, nel caso in cuil'operazione non vada a buon fine, l'istruzioneCatch "cattura" il tipo dieccezione sollevata  Catch exc As Exception  evisualizza l'errore che si è verificato exc.ToString.