E-Mail da pagine ASP.NET
L'ambiente .NET mette a disposizione degli sviluppatori un nuovo oggetto per la gestione e l'invio di E-Mail da pagine ASP.NET: il System.Web.Mail.
La prima operazione da eseguire è l'importazione del namespace System.Web.Mail:
<%@ Page Language="VB" %> <%@ Import Namespace="System.Web.Mail" %>
Il codice per l'invio della Mail è relativamente semplice ed intuitivo; viene creato un nuovo oggetto Mail che utilizza le stesse proprietà che erano presenti 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 il metodo 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.Value SmtpMail.Send(mail)
Ora, è necessario inserire le istruzioni create, all'interno di una funzione che eseguirà l'invio del messaggio solo al verificarsi di un determinato 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 MailMessage
mail.From = txtFrom.Value
mail.To = txtTo.Value
mail.Subject = txtSubject.Value
mail.Body = txtBody.Value
SmtpMail.Send(mail)
End Sub
</script>
Alla pressione del tasto Submit, presente nella pagina ASP.NET, verrà invocata l'esecuzione della funzione sopra indicata; un ultimo consiglio, per migliorare l'esecuzione del codice, è l'utilizzo del gestore delle eccezioni (Try ... Catch) che rappresenta una delle novità introdotte dal Framework .NET.
Attraverso il costrutto Try ... Catch è possibile gestire ed "intercettare" tutti gli eventuali errori che si potranno verificare durante l'esecuzione della funzione di Invio Mail ed eseguire determinate istruzioni 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.ToString
End Try
End Sub
</script>
In dettaglio: l'istruzione Try cerca di eseguire il codice al suo interno, nel caso in cui l'operazione non vada a buon fine, l'istruzione Catch "cattura" il tipo di eccezione sollevata Catch exc As Exception e visualizza l'errore che si è verificato exc.ToString.