La classe System.Web.Mail: inviare e-mail con ASP.NET

di Massimo Cappellesso, in ASP.NET,

L'invio di e-mail da ASP.NET viene gestito mediante il namespace System.Web.Mail, che contiene le classi necessarie alla creazione e all'invio della e-mail stessa mediante l'utilizzo del componente CDOSYS (Collaboration Data Objects for Windows 2000).

Naturalmente tale namespace andrà importato nella pagina o nello user control nel quale useremo queste classi attraverso la direttiva:

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

Nel caso non venga specificato nessun server SMTP per l'invio del messaggio, questo viene inoltrato utilizzando il servizio SMTP attivo con IIS, sullo stesso server.

Le classi che espone questo namespace sono le seguenti:

  • MailMessage, fornisce proprietà e metodi per la creazione di un messaggio di posta;
  • MailAttachment, fornisce proprietà e metodi per la creazione di un allegato al messaggio di posta;
  • SmtpMail, fornisce proprietà e metodi per l'invio di un messaggio di posta tramite il componente CDOSYS.

Analizziamo ora in dettaglio queste classi e vediamo come sfruttarne al meglio ogni singola peculiarità.

Classe MailMessage

Questa è la classe principale del namespace, la classe che ci permette di creare il nostro messaggio di posta elettronica. Come ogni classe dispone di metodi e proprietà; vediamo quelle più comunemente utilizzate:

  • Attachments, specifica l'elenco degli allegati da inviare con il messaggio;
  • Bcc, imposta o restituisce un elenco, separato da punto e virgola, di indirizzi e-mail che riceveranno una copia carbone nascosta (o Ccn) del messaggio;
  • Body, imposta o restituisce il corpo del massaggio;
  • BodyFormat, imposta o restituisce il tipo di contenuto del massaggio: plan text o HTML;
  • Cc, imposta o restituisce un elenco, separato da punto e virgola, di indirizzi e-mail che riceveranno una copia per conoscenza del messaggio;
  • From, imposta o restituisce l'indirizzo e-mail del mittente del massaggio;
  • Priority, imposta o restituisce la priorità del messaggio;
  • Subject, imposta o restituisce l'oggetto del messaggio;
  • To, imposta o restituisce l'indirizzo e-mail del destinatario;

Per l'elenco completo di proprietà, metodi e costrutti della classe MailMessage si veda:

MSDN

Esempio di messaggio con priorità alta in formato testo:

Dim Mail As New MailMessage()
Mail.From = "from@dominio.it"
Mail.To = "to@dominio.it"
Mail.Subject = "Oggetto della mail"
Mail.Priority = MailPriority.High
Mail.BodyFormat = MailFormat.Text
Mail.Body = "Messaggio con priorità alta in formato testo"

Esempio di messaggio con priorità bassa in formato HTML:

Dim Mail As New MailMessage()
Mail.From = "from@dominio.it"
Mail.To = "to@dominio.it"
Mail.Subject = "Oggetto della mail"
Mail.Priority = MailPriority.Low
Mail.BodyFormat = MailFormat.HTML
Mail.Body = "<html><body>Messaggio con priorità <b>bassa</b> in formato <i>HTML</i></body></html>"

Classe MailAttachment

Questa classe fornisce i metodi e le proprietà per la creazione di un allegato al messaggio di posta elettronica.

Principali proprietà della classe:

  • Encoding , restituisce il tipo di codifica per l'allegato del messaggio (sola lettura);
  • Filename , restituisce il nome del file allegato al messaggio (sola lettura).

Per allegare un file ad un messaggio di posta è necessario creare una nuova istanza della classe Mail.MailAttachment passando il nome del file da allegare ed eventualmente il tipo di codifica dell'allegato:

Dim Allegato = New MailAttachment(Server.MapPath("allegato.txt "))

Dopodiché bisogna collegare l'istanza alla classe MailMessage utilizzando il metodo Add, passando come parametro l'istanza stessa della classe appena creata:

Mail.Attachments.Add(Allegato)

Durante l'invio del messaggio il file allegato rimane bloccato.

Per l'elenco completo di proprietà, metodi e costrutti della classe MailAttachment si veda:

MSDN

2 pagine in totale: 1 2
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti