VB.Net consente di inviare e-mail da un'applicazione. Le classi utilizzate per l'invio della mail sono contenute nel namespace Il System.Net.Mail tramite il protocollo SMTP (Simple Mail Transfer Protocol).
Vediamo alcune delle classi principali del namespace:
Classe | Descrizione |
---|---|
Attachment | Rappresenta un allegato |
AttachmentCollection | Una collection di allegati |
MailAddress | Rappresenta un indirizzo di posta elettronica |
MailAddressCollection | Una collection di indirizzi di posta elettronica |
MailMessage | Rappresenta un messaggio di posta elettronica che verrà inviato tramite la classe SmtpClient |
SmtpClient | La classe che permette di inviare e-mail tramite il protocollo SMTP |
La classe SmtpClient consente alle applicazioni di inviare e-mail utilizzando il protocollo SMTP.
Vediamone i metodi più usati
Metodo | Descrizione |
Dispose | Invia un messaggio QUIT al server SMTP, termina la connessione TCP, rilasciando le risorse |
OnSendCompleted | Scatenna l'evento SendCompleted. |
Send | Invia il messaggio specificato a un server SMTP perchè venga consegnato. |
SendAsync | Invia il messaggio specificato a un server SMTP perchè venga consegnato, in maniera asincrona. Questo metodo non blocca il thread chiamante, che può proseguire la propria esecuzione. |
SendAsyncCancel | Annulla un'operazione asincrona di invio. |
SendMailAsync | Invia il messaggio specificato a un server SMTP perchè venga consegnato, in maniera asincrona. Questo metodo non blocca il thread chiamante, che può proseguire la propria esecuzione. |
Per inviare una emali con VB.Net è necessario effettuare alcuni passi fondamentali:
Imports System.Net.Mail
Module esempioInvioEmail
Sub Main()
Dim mySmtp As New SmtpClient
Dim myMail As New MailMessage()
mySmtp.UseDefaultCredentials = False
mySmtp.Credentials = New Net.NetworkCredential("username@smtpserver.com", "passwordSmtp")
mySmtp.Host = "smtp.miosmtpserver.com"
myMail = New MailMessage()
myMail.From = New MailAddress("mioIndirizzo@mioserver.com")
myMail.To.Add("indirizzoTo@tuoserver.com")
myMail.Subject = "Oggetto Email"
myMail.IsBodyHtml = False
myMail.Body = "Cropo Email"
mySmtp.Send(myMail)
Console.WriteLine("Email inviata")
Catch se As SmtpException
Console.WriteLine(e.ToString)
Catch e As Exception
Console.WriteLine(e.ToString)
End Try
End Sub
End Module