原来,先根据工资总表,自动生成每个职工的工资条,再进入QQ群,挨个分发工资条,但效率太低。
现在,想利用QQ邮箱,根据工资总表的名单,以及从人员管理表中提取的对应QQ号,自动发送工资条到QQ邮箱。
存在问题:
1、如果用同步发送,会提示下图错误,且前面的人发送成功,而后面的人发送不成功:
此主题相关图片如下:tim截图20190301191049.png
2、如果用异步发送,虽然不提示错误,但前面的人收不到,且会将所有附件都发送给后面的人。
另外,必须修改帮助文档:帮助文档认为Port默认为25,通常无需设定,但事实是该端口号默认被关闭,或要按QQ要求设置。
主要代码如下,请高手指正,谢谢!
Dim filename As String = "D:\工资条\工资总表.xls"
Dim App As New MSExcel.Application
Dim book1 As MSExcel.WorkBook = App.WorkBooks.Open(filename)
Dim ws1 As MSExcel.WorkSheet = book1.WorkSheets(1)
Dim rg1 As MSExcel.Range = ws1.UsedRange
Dim name As String
Dim dt As DataTable = DataTables("人员管理")
Dim dr As DataRow = dt.Find("员工姓名='" & _username & "'")
Dim m As New MailSender
m.Host = "smtp.qq.com"
m.port = "587" '不能用默认的25端口,因默认情况下是关闭的
m.EnableSsl = True
m.Account = "382433689@qq.com"
m.Password = "gfoaafpvckhhbhd"
m.From = dr("QQ号") & "@qq.com"
m.C
For i As Integer = 2 To rg1.Rows.Count
If ws1.Cells(i,2).value = "" Then '第2列为姓名列
Exit For
End If
name = ws1.Cells(i,2).value
dr = dt.Find("员工姓名 = '" & name & "'")
If dr IsNot Nothing Then
If dr("QQ号")>"" Then
m.Title = dr("员工姓名") & "工资条"
m.To = dr("QQ号") & "@qq.com"
m.AddAttachments("D:\工资条\" & name & ".xlsx") '附件会越加越多
m.SendAsync() '两种发送方式,都得不到正确的结果
End If
End If
Next
[此贴子已经被作者于2019/3/2 21:24:04编辑过]