Inviare Mail con ASP.NET
Vediamo come funziona l'oggetto System.Web.Mail. Codici ed esempi.
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) per selezionare un webserver SMTP si usa il metodo Smtp=”indirizzo del mail server”. Se viene omesso il metodo Smtp si usera’ l’smtp di defoult del server dove risiede il modulo ASP.NET.
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)
I metodi dell’oggetto Mail sono:
From: mittente
To: destinatario
Cc: indirizzo per conoscenza
Bcc: idirizzi per conoscenza modalità nascosta (non visibili in email)
Subject: oggetto dell’email
Body: corpo ermail
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 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 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:" & exc.ToStringEnd TryEnd Sub<%/script%>
La procedura appena vista serve per inviare le email in formato testo. Se il metodo BodyFormat dell’oggetto Mail è omesso, il messaggio di default viene formattato come messaggio di testo non HTML ed equivale ad usare l’istruzione
mail.BodyFormat = MailFormat.Text ‘ messaggio in formato testo
ma se vogliamo inviare le email in formato HTML in modo da poterle formattare con i vari stili grafici allora dobbiamo aggiungere:
mail.BodyFormat = MailFormat.Html ‘ messaggio in formato html
per esempio un messaggio HTML può essere:
mail.BodyFormat = MailFormat.HtmlstrBody = "<html><body><b>Hello World</b>" & " <font color=’red’>ASP.NET</font></body></html>"
L’email che arriverà conterrà il testo Hello World in grassetto (tag <b>) e la scritta ASP.NET di colore rosso (<font color=’red’>).
Ultimo dettaglio da vedere sono gli allegati. Con ASP.NET l’invio di email con allegati diventa molto facile e non ha bisogno di alcun componente esterno. Prima di tutto abbiamo bisogno che il file da allegare risieda in una cartella del server, successivamente useremo il metodo MailAttachment nel seguente modo:
mail.Attachments.Add(new MailAttachment("c:\temp\documento.pdf"))
- Articolo precedente Immagini Random con ASP.NET per rotazione banner, vetrina prodotti, fotogallery
- Articolo successivo Creare Google Sitemaps con ASP.NET