Imports System Imports System.Text Imports System.IO Imports System.Net Imports System.Net.Sockets Imports System.Collections Imports Microsoft.Office.Interop.Excel Imports Microsoft.VisualBasic Imports System.net.Mail Imports System.Security Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim cn As System.Data.OleDb.OleDbConnection Dim cmd As System.Data.OleDb.OleDbDataAdapter Dim ds As New System.Data.DataSet() Dim k As Integer = 0 Dim fs As IO.FileStream Dim r As IO.BinaryReader fs = New IO.FileStream(TextBox6.Text.ToString, IO.FileMode.OpenOrCreate) r = New IO.BinaryReader(fs) Dim str As String = Nothing str = System.Text.Encoding.GetEncoding("gb2312").GetString(r.ReadBytes(fs.Length), 0, fs.Length) Dim wait As New Form2 wait.Show() wait.Refresh() Try cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" & TextBox5.Text.Trim & ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'") cmd = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", cn) cn.Open() cmd.Fill(ds, "测试") cn.Close() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "数据异常") Return End Try For i As Integer = 0 To ds.Tables("测试").Rows.Count - 1 wait.ProgressBar1.Value = (i + 1) / ds.Tables("测试").Rows.Count * 100 Dim smtp As New System.Net.Mail.SmtpClient '(TextBox2.Text.ToString, 25) smtp.Host = TextBox2.Text.Trim.ToString smtp.Port = 25 smtp.Credentials = New System.Net.NetworkCredential(TextBox3.Text.Trim.ToString, TextBox4.Text.Trim.ToString) Dim mail As New System.Net.Mail.MailMessage() mail.Subject = TextBox1.Text.ToString mail.SubjectEncoding = System.Text.Encoding.GetEncoding("GB2312") mail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312") mail.From = New System.Net.Mail.MailAddress(TextBox7.Text.ToString) mail.Priority = System.Net.Mail.MailPriority.Normal 'HTML格式的邮件,为false则发送纯文本邮箱 mail.IsBodyHtml = True mail.Body = str mail.To.Add(ds.Tables("测试").Rows(i).Item("地址").ToString) '发送邮件 Try smtp.Send(mail) Catch k += 1 Finally mail.Dispose() End Try wait.ProgressBar1.Refresh() Next fs.Dispose() wait.Dispose() MsgBox("邮件发送完成!共:" & ds.Tables("测试").Rows.Count & "份,成功:" & ds.Tables("测试").Rows.Count - k & "份,失败:" & k & "份") End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim frm As New OpenFileDialog frm.Filter = "Excel文件(2000-2003)|*.Xls|Excel文件(2007)|*.Xlsx" frm.ShowDialog() TextBox5.Text = frm.FileName End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim frm As New OpenFileDialog frm.Filter = "TXT文件|*.txt" frm.ShowDialog() TextBox6.Text = frm.FileName End Sub End Class