Hello.
First of all
Label7.Text = Val(Label7.Text + 1) this doesn't seem right it should be like
Label7.Text = Val(Label7.Text) + 1
Secondly, you've put all of this in a timer event, you have to realize that if this is just a piece of the code that runs and if anywhere within the running code you call for application.doevents your timer will get fired and the sub may have not finished by that time.
As for the mailing list, you could do For Each Next if you have a list of e-mail adresses you want to send to.
In this case it would be like
Private Sub Timer1_Tick_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim mymailmessage As New MailMessage
mymailmessage.From = New MailAddress(TextBox1.Text)
For Each address_book_record as string in Listbox1.items
mymailmessage.To.Add(address_book_record)
Next
mymailmessage.Subject = (TextBox4.Text)
mymailmessage.Body = (TextBox5.Text)
Dim smtpserver As New SmtpClient("smtp.gmail.com")
smtpserver.Port = (587)
smtpserver.Credentials = New System.Net.NetworkCredential(TextBox1.Text, TextBox2.Text)
smtpserver.EnableSsl = True
smtpserver.Send(mymailmessage)
Label7.Text = Val(Label7.Text) + 1
On Error Resume Next
ProgressBar1.PerformStep()
If ProgressBar1.Value >= ProgressBar1.Maximum Then
Timer1.Enabled = False
End If
End Sub
This would send your mail message to all the addresses in the listbox1.