in

DotNetSide

Dot Net South Italy Developers User Group

Articoli

Articoli pubblicati dagli iscritti a .netSide

Inviare velocemente e-mail con C# ed il .NET Framework 2.0

Autore: Pasquale Innato (pisquik)

Introduzione

Da quando Internet si è sviluppato offrendo servizi vari dal Web alla posta elettronica, dall’Instant Messaging fino al VoIP, i software per utilizzare questi servizi sono diventati molteplici e di tutti i tipi dai proprietari agli Open Source.
Quando utilizziamo client di posta elettronica come Outlook Express o Mozilla Thunderbird non ci interessiamo come questi si connettano ai server per inoltrare le nostre e-mail e pensiamo a tutte quelle righe di codice che ne stanno dietro. Con il .NET Framework e in particolare con la versione 2.0, sviluppare un software che permette di inviare un e-mail è semplice e veloce grazie alla classe System.Net in C#.

Sviluppo del form

Il software che svilupperemo non ha bisogno di una particolare versione di Visual Studio 2005, quindi va bene anche in versione Express.

Per prima cosa bisogna creare un nuovo progetto WindowsApplication in C#.
Dopodiché inserire sul form: 5 Label, 4 TextBox una RichTextBox e un Button e organizzarli come in figura.
Per maggiore leggibilità del codice proposto inseriremo i seguenti nomi alle etichette: per l’etichetta Mittente inseriremo lblIndirizzoMittente, lblIndirizzoDestinatario per quella del Destinatario, lblIndirizzoServer per il Server SMTP, lblOggetto per l’Oggetto e infine per il Messaggio rtbMessaggio. Dare il nome btnInvia al pulsante Invia. Sarà in questo controllo che concentreremo tutto il nostro codice.

Sviluppo del codice

Fare doppio click sul pulsante Invia per visualizzarne il codice.

private void btnInvia_Click(object sender, EventArgs e){ 
	//Codice...
}

Inserire dentro il metodo le variabili come segue:

string IndirizzoMittente, IndirizzoDestinatario, IndirizzoServer, Oggetto, Messaggio;

e poi inizializzarle settando come valore la proprietà Text dei vari controlli:

IndirizzoMittente = txtIndirizzoMittente.Text; 
IndirizzoDestinatario = txtIndirizzoDestinatario.Text; 
IndirizzoServer = txtIndirizzoServer.Text; 
Oggetto = txtOggetto.Text; 
Messaggio = rtbMessaggio.Text;

Aggiungere un nuovo oggetto chiamato message per l’invio di e-mail che ha come Overload le variabili prima scritte:

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(IndirizzoMittente, IndirizzoDestinatario, Oggetto, Messaggio);

aggiungere un altro oggetto chiamato mailClient per specificare tramite l’overload, l’indirizzo del server SMTP:

System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient(IndirizzoServer); 
mailClient.Send(message);

Analizziamo ora il codice proposto prima.
Abbiamo appena inizializzato un nuovo oggetto di nome message che fa parte del namespace System.Net, più precisamente della classe System.Net.Mail.MailMessage, che nel nostro caso ha bisogno di 4 argomenti: il primo indica l’indirizzo e-mail mittente, il secondo l’indirizzo e-mail destinatario, il terzo l’oggetto del messaggio ed il quarto il corpo del messaggio.
L’altra riga di codice utilizzata invece inizializza l’oggetto mailClient facente parte della classe System.Net.Mail.SmtpClient, che qui ha bisogno di un solo argomento, che specifica l’indirizzo del server SMTP del mittente del messaggio.
Il restante codice indica l’oggetto message come messaggio nella funzione Send dell’oggetto mailClient.
E' sorprendente la velocità di scrittura, soprattutto vedere che grazie a qualche riga di codice della classe System.Net è possibile inviare una e-mail.
Naturalmente è preferibile inserire tutto il codice proposto dentro un blocco try e poi gestire le eccezioni in un blocco catch. Per esempio così:

try { 
	//Codice appena scritto 
} catch (Exception ex) { 
	MessageBox.Show(ex.Message); 
}

In questo modo si visualizza una MessageBox per qualsiasi eccezione che potrebbe comparire.

Test applicazione

Ora non ci resta che compilare l’applicazione. Se il compilatore non genere errori, provare l’applicazione.
Basta avere a disposizione due indirizzi e-mail da consultare velocemente e conoscere l’indirizzo del server in uscita SMTP.
Ora scrivete un qualsiasi testo nell’oggetto e poi nel messaggio e fate click su Invia. Dopo pochi secondi dovreste ricevere l’e-mail da voi inviata all’indirizzo destinatario con scritto come Mittente l’indirizzo da voi inserito nel software.

Per esempio come mostrato in figura:

Conclusioni

Con questo articolo non solo si comprende come sviluppare un client di posta elettronica, ma anche quanto è veloce e pratico il .NET Framework 2.0 che permette ad uno sviluppatore anche non professionista di riuscire a creare soluzioni a problemi anche complessi nel minor tempo possibile, con un piccolo dispendio di energie, con tutta la potenza di un linguaggio come il C# e la comodità di un ambiente di sviluppo come Visual Studio 2005.

Only published comments... Oct 01 2006, 09:00 PM by DotNetSide Staff

Comments

 

Pisquik .NET said:

Oggi è uscito il mio primo articolo,e spero non ultimo,sull'invio di e-mail in C#, comodo per cominciare

October 2, 2006 2:56 PM
Powered by Community Server (Commercial Edition), by Telligent Systems