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.