29ott/083
VB.NET – inviare un’email attraverso il Namespace System.Net.Mail con gestione degli errori
A partire dalla versione 2.0 di .NET il Namespace System.Web.Mail è stato rimpiaziato da System.Net.Mail, dedicato interamente all'invio di email e molto più completo ed esteso rispetto al precedente. In questo stralcio di codice mostro come implementare una semplice funzione che consente l'invio di email in formato HTML, con un allegato e in modalità asincrona, così da poter intercettare facilmente eventuali errori. Il codice è ampiamente commentato, in caso di dubbi o problemi non esitate a postare un commento.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | Imports System.Net.Mail 'importo il Namespace Dim mail As MailMessage 'questa dichiarazione deve essere globale 'funzione per l'invio di un messaggio email Private Sub invia_messaggio() Try mail = New MailMessage() 'definisco i dati del mittente Dim mittente As New MailAddress("mittente@boh.it", _ "Nome Mittente") mail.From = mittente 'aggiungo un destinatario, copiando questa 'riga si possono aggiungere destinatari multipli mail.To.Add("destinatario@boh.it") 'se si desidera richiedere una notifica di lettura 'del messaggio decommentare la seguente 'riga di codice 'mail.Headers.Add("Disposition-Notification-To", _ ' "<mittente@boh.it>") 'definisco l'oggetto del messaggio mail.Subject = "Oggetto messaggio" 'definisco la priorità del messaggio mail.Priority = Net.Mail.MailPriority.High 'definisco la codifica del corpo del messaggio mail.BodyEncoding = System.Text.Encoding.UTF8 'definisco il messaggio in modalità HTML mail.IsBodyHtml = True 'definisco il corpo del messaggio mail.Body = "<html><head></head><body>CIAO</body></html>" 'aggiungo un allegato specificandone il percorso esattto mail.Attachments.Add(New Attachment("C:\ciao.txt")) 'definisco l'indirizzo del server SMTP Dim smtp As New SmtpClient("smtp.boh.it") 'definisco i dati per l'autenticazione al server SMTP smtp.UseDefaultCredentials = False smtp.Credentials = New NetworkCredential("nome utente", _ "password") 'al termine dell'invio verra richiamata 'la funzione invio_completato AddHandler smtp.SendCompleted, AddressOf invio_completato Dim Token As New Object 'invio il messaggio in modalità asincrona smtp.SendAsync(mail, Token) Catch ex As SmtpException 'qui il codice da eseguire in caso di mancanza 'di una connessione ad internet MsgBox("Nessuna connessione ad internet attiva", _ MsgBoxStyle.Exclamation, _ "Errore") mail.To.Clear() mail.Attachments.Clear() mail.Dispose() End Try End Sub 'la seguente funzione viene richiamata in ogni caso 'al termine dell'invio del messaggio Private Sub invio_completato(ByVal sender As Object, _ ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Dim Token As Object = e.UserState If e.Cancelled Then 'l'invio è stato annullato Debug.WriteLine("Invio annullato") End If If e.Error IsNot Nothing Then 'si è verificato un'errore durante l'invio Debug.WriteLine("Errore: " & e.Error.ToString) Else 'invio completato senza errori Debug.WriteLine("Invio completato") End If mail.To.Clear() mail.Attachments.Clear() mail.Dispose() End Sub |
Mi piace!
Identità digitale
Siti amici
Categorie
- Guide (1)
- Linux (1)
- Programmazione (4)
- VB.NET (3)
- Senza categoria (2)
- Video guide (1)
- Web (1)
Articoli recenti
- Terremoto in Abruzzo – non lasciamoli soli
- Risolti problemi di compatibilità del blog
- Come risparmiare veramente grazie alla combinazione di servizi VOIP e VIRTUAL PBX
- VB.NET – una funzione che genera il valore di hash MD5 e SHA-1 di un qualunque file
- VB.NET – inviare un’email attraverso il Namespace System.Net.Mail con gestione degli errori
- VB.NET – ridimensionare un’immagine
- PSPad: un fantastico editor di codice freeware
- ADrive rivoluziona lo storage online gratuito
- Alla scoperta di gOS
- Proteggere i propri dati su Windows Vista con TrueCrypt
Articoli più visti
- VB.NET – inviare un’email attraverso il Namespace System.Net.Mail co...
- ADrive rivoluziona lo storage online gratuito
- VB.NET – una funzione che genera il valore di hash MD5 e SHA-1 di un qualu...
- Come risparmiare veramente grazie alla combinazione di servizi VOIP e VIRTUAL PB...
- VB.NET - ridimensionare un'immagine
- Risolti problemi di compatibilità del blog
- PSPad: un fantastico editor di codice freeware
- Terremoto in Abruzzo – non lasciamoli soli
- Alla scoperta di gOS
- Proteggere i propri dati su Windows Vista con TrueCrypt
Sondrio in WebCam
Tag
.NET
Action Script
Action Script 2
ADrive
AES
Apache
Apache 2
archiviare
ASP
backup
backup automatico
cifratura
codice
codifica
dati
dati sensibili
editor
free
freeware
Google
google apps
gos
gratuitamente
greenOS
hard disk
HTML
Linux
notebook
OpenSource
Open Source
personal computer
privacy
programmatore
Programmazione
pspad
Serpent
sicurezza
storage backup
truecrypt
tux
Twofish
Ubuntu
vb.net
VB .NET
visual basisc .net
Statistiche
- Pagine mostrate: 18360
- Visitatori unici: 6523
- Pagine visitate nelle ultime 24 ore: 26
- Visitatori unici nelle ultime 24 ore: 23





agosto 15th, 2010 - 04:25
Grazie è proprio quello che stavo cercando!!!!
agosto 29th, 2010 - 02:50
Grazie, esempio chiarissimo e utilissimo, mi serviva proprio!!
E’ possibile ricevere in ritorno un messaggio di conferma che la mail è stata letta?
Grazie Mille!!
ciao
settembre 3rd, 2010 - 00:34
Ciao Daniele, ho modificato l’esempio di codice inserendo la possibilità di richiedere l’invio della notifica di lettura del messaggio. Ciao