![]() |
|
Inviare email con Asp.NET: il Namespace System.Web.Mail
Utilizzeremo questo Articolo sia per analizzare in maniera pressocchè completa il Namespace (o classe) System.Web.Mail, sia per preparare un piccolo form-mail semplicemente adattabile alle più comuni esigenze degli sviluppatori. Il funzionamento di quest'applicazione non è particolarmente differente dall'utilizzo dell'ormai famosa libreria CDONTS con Asp tradizionale: viene infatti generata un'istanza dell'oggetto CDOSYS, creato per IIS6, per quanto retroattivamente compatibile.
<%@page language="C#"%>
<%@ Import Namespace="System.Web.Mail" %>
<script language="C#" runat="server">
public void Invia(Object Obj, EventArgs e)
{
MailMessage EMAIL = new MailMessage();
EMAIL.From = mittente.Text;
EMAIL.To = destinatario.Text;
EMAIL.Subject = oggetto.Text;
EMAIL.Body = messaggio.Text;
try
{
SmtpMail.Send(EMAIL);
Messaggio.Text = "Messaggio inviato";
}
catch (Exception Ex)
{
Messaggio.Text = "Errore nell'invio: " + Ex.Message;
}
}
</script>
<form id="modulo" name="modulo" method="POST" action="email.aspx" runat="server">
Destinatario<br>
<asp:Textbox id="destinatario" value="lucaruggiero@email.it" runat="server" /><br>
Mittente<br>
<asp:Textbox id="mittente" runat="server" /><br>
Oggetto<br>
<asp:Textbox id="oggetto" runat="server" /><br>
Messaggio<br>
<asp:Textbox TextMode="multiline" id="messaggio" Rows="10" Cols="50" runat="server" /><br>
<asp:Button id="Send" Text="Invia" onClick="Invia" runat="server" />
</form>
<asp:Label id="Messaggio" runat="server" />
Vediamo di fare luce sul codice appena presentato, implementato in C#. Iniziamo proprio dal codice Asp.NET che provvede all'elaborazione ed all'invio dei dati; restano invariate proprietà standard From, To, Subject e Body, a cui è necessario associare la proprietà Text per trattare il dato come stringa.Espletata questa operazione di incapsulamento dei dati, possiamo passare alla loro elaborazione ed invio. E' opzionale (ma consigliata) la gestione degli errori col costrutto try...catch; utilizziamo il metodo SmtpMail.Send() per inviare la mail ed impostiamo un messaggio di conferma; in caso di errore, avvisiamo l'utente del deprecabile quanto involontario errore, utilizzando la proprietà Ex.Message (eccezione.messaggio) per fornire una spiegazione maggiormente dettagliata. Per la realizzazione del modulo ho utilizzato gli Html Controls, ovvero oggetti client messi a disposizione da Asp.NET per la gestione di alcune componenti della pagina Html: conto di dedicare a breve un Articolo a questi elementi. Il risultato Html non è altro che un normalissimo modulo. Faccio solo una piccola anticipazione: abbiamo notato sul pulsante di invio l'evento onClick; siamo abituati con Javascript ad associare una funzione o una routine lato client ad un evento; essendo Asp.NET un linguaggio ad eventi oltre che ad oggetti, è possibile associare all'evento di un elemento una funzione lato server! Gli elementi che caratterizzano una mail, come abbiamo appreso con CDONTS, non finiscono qui: abbiamo la possibilità di inviare allegati, di impostare la priorità della missiva, di formattare il corpo in Html, e così via. Esaminiamo queste altre caratteristiche. BodyFormat permette di formattare la mail in Html: EMAIL.BodyFormat = MailFormat.Html;BodyEncoding permette di codificare il formato della mail in base N, nell'esempio di codice in base 64 bit: EMAIL.BodyEncoding = MailFormat.Base64;Priority stabilisce la priorità della mail; i suoi valori sono gli stessi utilizzati in CDONTS: EMAIL.Priority = MailPriority.High; // ALTA PRIORITA'Attachments.Add include in allegato un file: EMAIL.Attachments.Add(new MailAttachment("c:\nomefile.ext"));
Ricordo che un file deve essere presente sul server per essere inviato come allegato, ed in caso contrario deve essere prima uploadato.SmtpMail.SmtpServer imposta l'indirizzo di un server SMTP da utilizzare, in caso il server non ne abbia uno già a disposizione o settato: SmtpMail.SmtpServer = "smtp.provider.ext"; |
IN EVIDENZA
Una slidegallery con jQuery
Pagamenti online con PayPal e PHP
Breve guida a jQuery
Effetto ombra su testo con Photoshop
Guadagna col tuo sito grazie a TradeD...
Guida XHTML
Riscrivere le URL con Asp
Riavviare IIS
HTTP 500 internal server error
Generare password casuali in Javascri...
Errore 80004005: Cannot update. Datab...
Introduzione ad Ajax ed Asp con Jscri...
Referenze dei Tag Html
Stringhe di connessione via ODBC e Ol...
Referenze dei fogli di stile Css
Le espressioni regolari in Javascript
|
||||
© 2001/2010 lukeonweb.net - A cura di Luca Ruggiero, Partita IVA 05564851219 -
Privacy |
Pubblicità |
Contatti
| |||||