vbdotnet.it

Tricks & tips, workaround, forum and ideas with .Net

About the author

Enrico Rossini è il gestore di questo blog.
E-mail me Send mail

Recent posts

Recent comments

Contributi

Best 6 ~ 6 users ~ 6 comments

Info legali

Le opinioni espresse in questo blog sono strettamente personali e ogni persona è responsabile dei commenti che inserisce. I marchi citati sono delle rispettive aziende.

© Copyright 2010

Advertising


Invio email con framework 3.5

Con il .NET framework 3.5 è stato introdotto un nuovo namespace Mail per l’invio delle email: questo namespace può essere aggiunto ai nostri programmi con la seguenti riga di codice:

Imports System.Net.Mail

L’invio dell’email può presentare qualche problema poiché non si trovano molti esempi su come inviare ad esempio degli allegati o ricevere una conferma di lettura. Nell’esempio che segue cercherò di rispondere a questi problemi.

Si supponga di avere un form con i seguenti textbox: txtTo per inserire l’email a cui spedire, txtSubject per inserire l’oggetto del messaggio, txtMessage per il corpo del messaggio e un listbox di nome lstAttachment per visualizzare l’elenco degli allegati. Un bottone per l’invio ed un checkbox per voler spedire il messaggio come HTML.

Dim objSmtpMail As System.Net.Mail.SmtpClient       ' variabile generale per l'invio dell'email
Dim Attachment As System.Net.Mail.Attachment        ' variabile per salvare gli allegati
Dim Mailmsg As New System.Net.Mail.MailMessage()    ' variabile per creare il corpo del messaggio
 
Private _displayname As String = ""                 ' variabile che contiene il nome dell'email da visualizzare
Private _from As String = ""                        ' variabile con l'indirizzo email da cui spedire
Private _smtpserver As String = ""                  ' variabile contenente l'indirizzo del server mail
 
Public Sub SendEmail()
   ' imposta le proprietà del server
   objSmtpMail = New System.Net.Mail.SmtpClient(_smtpserver)
 
   ' definisce il mittente 
   ' (primo parametro l'indirizzo email, secondo il nome che deve apparire all'utente che riceve l'email)
   Mailmsg.From = New System.Net.Mail.MailAddress(_from, _displayname)
 
   ' per specificare indirizzi multipli separare uno dall'altro con il ;
   Mailmsg.To.Add(New System.Net.Mail.MailAddress(Me.txtTo.Text.Trim))
 
   ' specifica formato
   If Me.tsbHTML.Checked = True Then
      ' spedisce l'email in formato HTML
      Mailmsg.IsBodyHtml = True
   Else
      Mailmsg.IsBodyHtml = False
   End If
 
   ' aggiunge degli header all'email che consentono di ricevere la conferma di lettura
   Mailmsg.Headers.Add("Reply-To", Mailmsg.From.Address)
   Mailmsg.Headers.Add("Disposition-Notification-To", Mailmsg.From.Address)
   Mailmsg.Headers.Add("Return-Receipt-To", Mailmsg.From.Address)
 
   ' aggiunge il testo
   Mailmsg.Subject = txtSubject.Text
   Mailmsg.Body = txtMessage.Text
 
   ' aggiunte gli allegati
   For Counter = 0 To lstAttachment.Items.Count - 1
      Attachment = New System.Net.Mail.Attachment(lstAttachment.Items(Counter))
      Mailmsg.Attachments.Add(Attachment)
   Next
 
   ' spedisce effettivamente l'email
   objSmtpMail.Send(Mailmsg)
End Sub

Spero vi sia utile. Ciao!

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by enrico on Tuesday, July 21, 2009 12:03 PM
Permalink | Comments (0) | Post RSSRSS comment feed

Inviare un'email con autenticazione in ASP.NET 2.0

Questo semplice codice illustra come poter inviare un’email da ASP.NET 2.0 e successivi con l’autenticazione del server SMTP.

   1: ' crea un nuovo oggetto MailMessage e specifica mittente e destinatario
   2: Dim Email As New System.Net.Mail.MailMessage( _
   3:    "info@vbdotnet.it", "info@pippo.com")
   4: Email.Subject = "test subject"
   5: Email.Body = "this is a test"
   6: Dim mailClient As New System.Net.Mail.SmtpClient()
   7:  
   8: ' questo oggetto salva le credenziali per l'accesso al server SMTP
   9: Dim basicAuthenticationInfo As _
  10:    New System.Net.NetworkCredential("username", "password")
  11:  
  12: ' inserire qui il tuo server remoto o quello del tuo providers
  13: mailClient.Host = "Mail.RemoteMailServer.com"
  14: mailClient.UseDefaultCredentials = False
  15: mailClient.Credentials = basicAuthenticationInfo
  16: mailClient.Send(Email)

Ciao

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: asp.net | vb.net | web
Posted by enrico on Friday, March 27, 2009 1:09 PM
Permalink | Comments (0) | Post RSSRSS comment feed