Imports System.Net.Mail 'importo il Namespace
'Imports System.IO.File
Public Class Form1
Dim mail As MailMessage 'questa dichiarazione deve essere globale
'funzione per l'invio di un messaggio email
Private Sub invia_messaggioUNICO()
Try
Me.Cursor = Cursors.WaitCursor
mail = New MailMessage()
'definisco i dati del mittente
Dim mittente As New MailAddress(TextBox1.Text.ToString, _
TextBox2.Text.ToString)
mail.From = mittente
'aggiungo un destinatario, copiando questa
'riga si possono aggiungere destinatari multipli
mail.To.Add(TextBox6.Text.ToString)
'definisco l'oggetto del messaggio
mail.Subject = TextBox7.Text.ToString '"Oggetto messaggio"
'definisco la prioritą del messaggio
mail.Priority = ComboBox2.SelectedIndex 'Net.Mail.MailPriority.High
If FormatoHTMLToolStripMenuItem.Checked = True Then
'definisco la codifica del corpo del messaggio
mail.BodyEncoding = System.Text.Encoding.UTF8
'definisco il messaggio in modalitą HTML
mail.IsBodyHtml = True
End If
If FormatoTestoToolStripMenuItem.Checked = True Then
'definisco la codifica del corpo del messaggio
mail.BodyEncoding = System.Text.Encoding.Unicode
'definisco il messaggio in modalitą HTML
mail.IsBodyHtml = False
End If
'definisco il corpo del messaggio
mail.Body = TextBox8.Text.ToString '"<html><head></head><body>" & TextBox8.Text & "</body></html>"
If TextBox5.Text.Trim = Nothing Then
mail.Attachments.Dispose()
Else
'aggiungo un allegato specificandone il percorso esatto
mail.Attachments.Add(New Attachment(TextBox5.Text.ToString))
End If
'definisco l'indirizzo del server SMTP
Dim smtp As New SmtpClient(ComboBox1.Text.ToString.ToLower)
'definisco i dati per l'autenticazione al server SMTP
smtp.UseDefaultCredentials = False
smtp.Credentials = New Net.NetworkCredential(TextBox3.Text.ToString, _
TextBox4.Text.ToString)
'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
Me.Cursor = Cursors.Default
MsgBox("Nessuna connessione ad internet attiva", _
MsgBoxStyle.Exclamation, _
"Errore")
mail.To.Clear()
If TextBox5.Text.Trim <> "" Then
mail.Attachments.Clear()
End If
mail.Dispose()
End Try
End Sub
Private Sub invia_messaggioMultiplo()
Dim i As Integer
'ListBox1.Items.Add("indimio&")
Me.Cursor = Cursors.WaitCursor
Label11.Visible = True
For i = 0 To ListBox1.Items.Count - 1
' If ListBox1.Items(i) = "indimio&" Then
'mail.To.Clear()
'mail.Attachments.Clear()
'mail.Dispose()
'Exit For
'End If
Try
mail = New MailMessage()
'definisco i dati del mittente
Dim mittente As New MailAddress(TextBox1.Text.ToString, _
TextBox2.Text.ToString)
mail.From = mittente
'aggiungo un destinatario, copiando questa
'riga si possono aggiungere destinatari multipli
Try
'mail.To.Add(ListBox1.Items(i))
mail.To.Add(ListBox1.Items(i).ToString)
TextBox10.Text = ListBox1.Items(i)
Catch
mail.To.Add(ListBox1.Items(i) & "@niente.it")
TextBox10.Text = ListBox1.Items(i) & "@niente.it"
End Try
'definisco l'oggetto del messaggio
mail.Subject = TextBox7.Text.ToString '"Oggetto messaggio"
'definisco la prioritą del messaggio
mail.Priority = ComboBox2.SelectedIndex 'Net.Mail.MailPriority.High
If FormatoHTMLToolStripMenuItem.Checked = True Then
'definisco la codifica del corpo del messaggio
mail.BodyEncoding = System.Text.Encoding.UTF8
'definisco il messaggio in modalitą HTML
mail.IsBodyHtml = True
End If
If FormatoTestoToolStripMenuItem.Checked = True Then
'definisco la codifica del corpo del messaggio
mail.BodyEncoding = System.Text.Encoding.ASCII
'definisco il messaggio in modalitą HTML
mail.IsBodyHtml = False
End If
'definisco il corpo del messaggio
mail.Body = TextBox8.Text.ToString '"<html><head></head><body>" & TextBox8.Text & "</body></html>"
If TextBox5.Text.Trim = Nothing Then
mail.Attachments.Dispose()
Else
'aggiungo un allegato specificandone il percorso esatto
mail.Attachments.Add(New Attachment(TextBox5.Text.ToString))
End If
'definisco l'indirizzo del server SMTP
Dim smtp As New SmtpClient(ComboBox1.Text.ToString.ToLower)
'definisco i dati per l'autenticazione al server SMTP
smtp.UseDefaultCredentials = False
smtp.Credentials = New Net.NetworkCredential(TextBox3.Text.ToString, _
TextBox4.Text.ToString)
Label11.Text = "Mail inviate: " & i + 1 & " su " & ListBox1.Items.Count
Label11.Refresh()
'al termine dell'invio verra richiamata
'la funzione invio_completato
AddHandler smtp.SendCompleted, AddressOf invio_completatoMulti
Dim Token As New Object
'invio il messaggio in modalitą asincrona
'Dim riga As Integer
' Try
smtp.SendAsync(mail, Token)
'riga = LV1.Items.Count
'Dim it As New ListViewItem(Now)
''Aggiungo SubItems nella ListView
'it.SubItems.Add(TextBox10.Text)
'it.SubItems.Add("Inviato con successo")
''Inserisco gli elementi alla Posizione Specificata dall'utente nella textbox(name: riga)
'LV1.Items.Insert(riga.ToString, it)
'Catch
' riga = LV1.Items.Count
' Dim it As New ListViewItem(Now)
' 'Aggiungo SubItems nella ListView
' it.SubItems.Add(TextBox10.Text)
' it.SubItems.Add("Errore: " & Err.Description)
' 'Inserisco gli elementi alla Posizione Specificata dall'utente nella textbox(name: riga)
' LV1.Items.Insert(riga.ToString, it)
'End Try
System.Threading.Thread.Sleep(200) 'Pausa Programma
Catch ex As SmtpException
'qui il codice da eseguire in caso di mancanza
'di una connessione ad internet
Me.Cursor = Cursors.Default
MsgBox("Nessuna connessione ad internet attiva", _
MsgBoxStyle.Exclamation, _
"Errore")
mail.To.Clear()
If TextBox5.Text.Trim <> "" Then
mail.Attachments.Clear()
End If
mail.Dispose()
End Try
System.Threading.Thread.Sleep(2000) 'Pausa Programma
Next
Me.Cursor = Cursors.Default
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
Dim riga As Integer
If e.Cancelled Then
Me.Cursor = Cursors.Default
'l'invio č stato annullato
'Debug.WriteLine("Invio annullato")
riga = LV1.Items.Count
Dim it As New ListViewItem(Now)
'Aggiungo SubItems nella ListView
it.SubItems.Add(TextBox6.Text)
it.SubItems.Add("Invio annullato")
'Inserisco gli elementi alla Posizione Specificata dall'utente nella textbox(name: riga)
LV1.Items.Insert(riga.ToString, it)
MsgBox("Invio annullato")
End If
If e.Error IsNot Nothing Then
Me.Cursor = Cursors.Default
riga = LV1.Items.Count
Dim it As New ListViewItem(Now)
'Aggiungo SubItems nella ListView
it.SubItems.Add(TextBox6.Text)
it.SubItems.Add("Errore: " & e.Error.ToString)
'Inserisco gli elementi alla Posizione Specificata dall'utente nella textbox(name: riga)
LV1.Items.Insert(riga.ToString, it)
'si č verificato un'errore durante l'invio
'Debug.WriteLine("Errore: " & e.Error.ToString)
MsgBox("Errore: " & e.Error.ToString)
Else
Me.Cursor = Cursors.Default
'invio completato senza errori
'Debug.WriteLine("Invio completato")
riga = LV1.Items.Count
Dim it As New ListViewItem(Now)
'Aggiungo SubItems nella ListView
it.SubItems.Add(TextBox6.Text)
it.SubItems.Add("Invio completato")
'Inserisco gli elementi alla Posizione Specificata dall'utente nella textbox(name: riga)
LV1.Items.Insert(riga.ToString, it)
MsgBox("Invio completato")
End If
mail.To.Clear()
If TextBox5.Text.Trim <> "" Then
mail.Attachments.Clear()
End If
mail.Dispose()
End Sub
'la seguente funzione viene richiamata in ogni caso
'al termine dell'invio del messaggio
Private Sub invio_completatoMulti(ByVal sender As Object, _
ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
Dim Token As Object = e.UserState
Dim riga As Integer
If e.Cancelled Then
Me.Cursor = Cursors.Default
'l'invio č stato annullato
'Debug.WriteLine("Invio annullato")
riga = LV1.Items.Count
Dim it As New ListViewItem(Now)
'Aggiungo SubItems nella ListView
it.SubItems.Add(TextBox10.Text)
it.SubItems.Add("Invio annullato")
'Inserisco gli elementi alla Posizione Specificata dall'utente nella textbox(name: riga)
LV1.Items.Insert(riga.ToString, it)
'MsgBox("Invio annullato")
End If
If e.Error IsNot Nothing Then
Me.Cursor = Cursors.Default
riga = LV1.Items.Count
Dim it As New ListViewItem(Now)
'Aggiungo SubItems nella ListView
it.SubItems.Add(TextBox10.Text)
it.SubItems.Add("Errore: " & e.Error.ToString)
'Inserisco gli elementi alla Posizione Specificata dall'utente nella textbox(name: riga)
LV1.Items.Insert(riga.ToString, it)
'si č verificato un'errore durante l'invio
'Debug.WriteLine("Errore: " & e.Error.ToString)
'MsgBox("Errore: " & e.Error.ToString)
Else
Me.Cursor = Cursors.Default
'invio completato senza errori
'Debug.WriteLine("Invio completato")
riga = LV1.Items.Count
Dim it As New ListViewItem(Now)
'Aggiungo SubItems nella ListView
it.SubItems.Add(TextBox10.Text)
it.SubItems.Add("Invio completato")
'Inserisco gli elementi alla Posizione Specificata dall'utente nella textbox(name: riga)
LV1.Items.Insert(riga.ToString, it)
'MsgBox("Invio completato")
End If
mail.To.Clear()
' If TextBox5.Text.Trim <> "" Then
'mail.Attachments.Clear()
'End If
mail.Dispose()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox1.Text.Trim = "" Then
MsgBox("Inserisci indirizzo mail mittente.", MsgBoxStyle.Information, "Mail mancante")
TextBox1.Focus()
Exit Sub
End If
If TextBox2.Text.Trim = "" Then
MsgBox("Inserisci nome mittente.", MsgBoxStyle.Information, "Nome mancante")
TextBox2.Focus()
Exit Sub
End If
If TextBox3.Text.Trim = "" Then
MsgBox("Inserisci nome account.", MsgBoxStyle.Information, "Account mancante")
TextBox3.Focus()
Exit Sub
End If
If TextBox4.Text.Trim = "" Then
MsgBox("Inserisci la password account.", MsgBoxStyle.Information, "Password mancante")
TextBox4.Focus()
Exit Sub
End If
If ComboBox1.Text.Trim = "" Then
MsgBox("Inserisci server smtp.", MsgBoxStyle.Information, "Server SMTP mancante")
ComboBox1.Focus()
Exit Sub
End If
If TextBox7.Text.Trim = "" Then
MsgBox("Inserisci l'oggetto del messaggio", MsgBoxStyle.Information, "Oggetto mancante")
TextBox7.Focus()
Exit Sub
End If
If RadioButton1.Checked = True Then
If TextBox6.Text.Trim = "" Then
MsgBox("Inserisci indirizzo mail destinatario.", MsgBoxStyle.Information, "Mail mancante")
TextBox6.Focus()
Exit Sub
End If
End If
If RadioButton2.Checked = True Then
If ListBox1.Items.Count = 0 Then
MsgBox("Inserisci indirizzo mail destinatario.", MsgBoxStyle.Information, "Mail mancante")
TextBox9.Focus()
Exit Sub
End If
End If
If RadioButton1.Checked = True Then
Call invia_messaggioUNICO()
Exit Sub
End If
If RadioButton2.Checked = True Then
Call invia_messaggioMultiplo()
End If
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim k
k = MsgBox("CHIUDERE IL PROGRAMMA?", MsgBoxStyle.DefaultButton2 + MsgBoxStyle.YesNo + MsgBoxStyle.Information, "Chiudi")
If k = vbYes Then
End
Else
e.Cancel = True
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboBox2.SelectedIndex = 0
TextBox9.Enabled = False
Button3.Enabled = False
Button4.Enabled = False
Button5.Enabled = False
TextBox6.Text = ""
TextBox9.Text = ""
ListBox1.Items.Clear()
TextBox9.Focus()
End Sub
Private Sub RadioButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton1.Click
TextBox9.Enabled = False
Button3.Enabled = False
Button4.Enabled = False
Button5.Enabled = False
TextBox6.Enabled = True
TextBox6.Text = ""
TextBox6.Focus()
End Sub
Private Sub RadioButton2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton2.Click
TextBox9.Enabled = True
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = True
TextBox6.Enabled = False
TextBox6.Text = ""
TextBox9.Text = ""
ListBox1.Items.Clear()
TextBox9.Focus()
Me.AcceptButton = Button3
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If TextBox9.Text.Trim = "" Then
Exit Sub
End If
ListBox1.Items.Add(TextBox9.Text)
TextBox9.Text = ""
TextBox9.Focus()
Label12.Text = ListBox1.Items.Count
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
If ListBox1.Items.Count = 0 Then
Exit Sub
End If
If ListBox1.SelectedIndex = -1 Then
MsgBox("Seleziona l'indirizzo mail da eliminare", MsgBoxStyle.Information, "Elimina indirizzo")
Exit Sub
End If
Dim k
k = MsgBox("Eliminare l'indirizzo:" & vbCrLf & vbCrLf & ListBox1.Items(ListBox1.SelectedIndex) & vbCrLf & vbCrLf & "Eliminare?", MsgBoxStyle.Information + MsgBoxStyle.YesNo, "Elimina indirizzo")
If k = vbYes Then
ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)
Label12.Text = ListBox1.Items.Count
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim O As New OpenFileDialog
O.Filter = "Tutti i file|*.*" ';*.tif;*.tiff;*.png;*.wmf;*.gif;*.emf;*.exif"
If O.ShowDialog = Windows.Forms.DialogResult.OK Then
TextBox5.Text = O.FileName
Else
TextBox5.Text = ""
End If
End Sub
Private Sub FormatoHTMLToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FormatoHTMLToolStripMenuItem.Click
FormatoTestoToolStripMenuItem.Checked = False
FormatoHTMLToolStripMenuItem.Checked = True
End Sub
Private Sub FormatoTestoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FormatoTestoToolStripMenuItem.Click
FormatoTestoToolStripMenuItem.Checked = True
FormatoHTMLToolStripMenuItem.Checked = False
End Sub
Private Sub EsciToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EsciToolStripMenuItem.Click
Application.Exit()
End Sub
Private Sub LogInvioMailToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LogInvioMailToolStripMenuItem.Click
Form2.Show()
Dim i As Integer, riga As Integer
Me.Cursor = Cursors.WaitCursor
For i = 0 To LV1.Items.Count - 1
riga = Form2.LV1.Items.Count
Dim it As New ListViewItem(LV1.Items(i).Text)
'Aggiungo SubItems nella ListView
it.SubItems.Add(LV1.Items(i).SubItems(1).Text)
it.SubItems.Add(LV1.Items(i).SubItems(2).Text)
'Inserisco gli elementi alla Posizione Specificata dall'utente nella textbox(name: riga)
Form2.LV1.Items.Insert(riga.ToString, it)
Next
Me.Cursor = Cursors.Default
End Sub
Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
Dim i As Integer, trov As Boolean
If TextBox1.Text.Trim = "" Then
Exit Sub
End If
trov = False
For i = 0 To TextBox1.Text.Length - 1
If TextBox1.Text.Substring(i, 1) = "@" Then
trov = True
End If
Next
If trov = False Then
MsgBox("Inserisci un indirizzo mail valido." & vbCrLf & vbCrLf & "Es.: miamail@provider.it", MsgBoxStyle.Information, "Indirizzo non valido")
TextBox1.Focus()
Else
TextBox3.Text = TextBox1.Text
End If
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim O As New OpenFileDialog
O.Filter = "File testo|*.txt" ';*.tif;*.tiff;*.png;*.wmf;*.gif;*.emf;*.exif"
If O.ShowDialog = Windows.Forms.DialogResult.OK Then
'TextBox5.Text = O.FileName
' Dim oFile As System.IO.File
Form3.Show()
Dim oRead As System.IO.StreamReader
Try
oRead
= IO.
File.
OpenText(O.
FileName)
While oRead.Peek <> -1
'Console.WriteLine(oRead.ReadLine())
Form3.CL1.Items.Add(oRead.ReadLine())
End While
Catch ex As Exception
Finally
oRead.Close()
Form3.Label3.Text = Form3.CL1.Items.Count
End Try
'Else
'TextBox5.Text = ""
End If
End Sub
Private Sub TextBox3_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox3.LostFocus
Dim i As Integer, trov As Boolean
If TextBox3.Text.Trim = "" Then
Exit Sub
End If
trov = False
For i = 0 To TextBox3.Text.Length - 1
If TextBox3.Text.Substring(i, 1) = "@" Then
trov = True
End If
Next
If trov = False Then
MsgBox("Inserisci un indirizzo mail valido." & vbCrLf & vbCrLf & "Es.: miamail@provider.it", MsgBoxStyle.Information, "Indirizzo non valido")
TextBox3.Focus()
End If
End Sub
Private Sub TextBox6_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox6.LostFocus
If TextBox6.Text.Trim = "" Then
Exit Sub
End If
Dim i As Integer, trov As Boolean
trov = False
For i = 0 To TextBox6.Text.Length - 1
If TextBox6.Text.Substring(i, 1) = "@" Then
trov = True
End If
Next
If trov = False Then
MsgBox("Inserisci un indirizzo mail valido." & vbCrLf & vbCrLf & "Es.: miamail@provider.it", MsgBoxStyle.Information, "Indirizzo non valido")
TextBox6.Focus()
End If
End Sub
Private Sub TextBox9_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox9.TextChanged
If TextBox9.Text.Trim = "" Then
Exit Sub
End If
Dim i As Integer, trov As Boolean
trov = False
For i = 0 To TextBox9.Text.Length - 1
If TextBox9.Text.Substring(i, 1) = "@" Then
trov = True
End If
Next
If trov = False Then
MsgBox("Inserisci un indirizzo mail valido." & vbCrLf & vbCrLf & "Es.: miamail@provider.it", MsgBoxStyle.Information, "Indirizzo non valido")
TextBox9.Focus()
End If
End Sub
Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem.Click
Form4.Show()
Me.Enabled = False
End Sub
Private Sub GroupBox3_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox3.Enter
End Sub
End Class