Foxtable(狐表)用户栏目专家坐堂 → 求助:如何实现根据多行选择,进行发送多封邮件!


  共有2466人关注过本帖树形打印复制链接

主题:求助:如何实现根据多行选择,进行发送多封邮件!

帅哥哟,离线,有人找我吗?
李孝春
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
求助:如何实现根据多行选择,进行发送多封邮件!  发帖心情 Post By:2019/2/12 15:25:00 [只看该作者]

附上例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多行选择发送邮件.table

当前无法根据选择的多行数据进行发送多行邮件。
只能单行单行的发送邮件,麻烦老师们帮忙看看,谢谢!
表格中的电子邮件地址请注意更换为你自己的地址。
同时将是否告知 全部更改为“否”进行测试!

图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看
多行发送邮件  按钮事件 当前代码如下:
Dim Rows As List(Of DataRow)
Dim tbl As Table = Tables("人员关联表")
For i As Integer = tbl.TopRow To tbl.BottomRow
    Dim rw As Row = tbl.Rows(i)
    Dim ab As Row = Tables("系统信息").Current 
    Dim dr As DataRow
    dr = DataTables("告知内容").Find("姓名 = '" & rw("姓名") & "'And 是否告知 = '否' " )
    If dr IsNot Nothing Then
        Dim wz As Integer = Tables("告知内容").FindRow(dr)
        If wz >= 0 Then
            Tables("告知内容").Position = wz
        End If
                Dim client As New System.Net.Mail.SmtpClient(ab("单位QQ邮件网关"), ab("单位QQ邮件端口")) '或者465
        client.EnableSsl = True 'SSL
        client.Credentials=New System.Net.NetworkCredential(ab("单位QQ邮件"), ab("单位QQ邮件发送授权码"))
        client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network
        Dim message As New System.Net.Mail.MailMessage()
        message.From=new System.Net.Mail.MailAddress(ab("单位QQ邮件"), ab("单位QQ邮件别名"))
        message.To.Add(new System.Net.Mail.MailAddress(rw("电子邮件"), rw("姓名")))
        message.To.Add(rw("电子邮件"))
        message.Subject = "瓮安检察" & dr("流程名称") & "通知"
        message.BodyEncoding = System.Text.Encoding.UTF8
        Dim content As String
        content &= "【"& rw("姓名") & "】" & rw("称谓") & "您好!" & vbcrlf
        content &=  vbcrlf
        content &= dr("涉案人名") & "涉嫌" & dr("涉案罪名") & "一案,经我院" & dr("流程时间") & "审查,现在已经进入【" & dr("流程名称") & "】" & vbcrlf
        content &=  vbcrlf
        content &= dr("注意事项")
        message.Body = content
        Dim attachment As new  System.Net.Mail.Attachment("d:\test.xls",  System.Net.Mime.MediaTypeNames.Application.Octet)
        message.Attachments.Add(attachment)
        AddHandler client.SendCompleted, AddressOf SendCompletedCallback
        Dim userState As String = "test message1"
        client.SendAsync(message, userState)
        dr("是否告知")="是"   
    Else
        MessageBox.Show("当前信息已经全部告知","【温馨提示】")       
    End If
Next
[此贴子已经被作者于2019/2/12 15:26:21编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/12 15:35:00 [只看该作者]

1、


Dim tbl As Table = Tables("人员关联表")
For Each rw As Row In tbl.GetCheckedRows
    Dim ab As Row = Tables("系统信息").Current
    Dim drs = DataTables("告知内容").Select("姓名 = '" & rw("姓名") & "'And 是否告知 = '否' " )
    For Each dr As DataRow In drs
        Dim client As New System.Net.Mail.SmtpClient(ab("单位QQ邮件网关"), ab("单位QQ邮件端口")) '或者465
        client.EnableSsl = True 'SSL
        client.Credentials=New System.Net.NetworkCredential(ab("单位QQ邮件"), ab("单位QQ邮件发送授权码"))
        client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network
        Dim message As New System.Net.Mail.MailMessage()
        message.From=new System.Net.Mail.MailAddress(ab("单位QQ邮件"), ab("单位QQ邮件别名"))
        message.To.Add(new System.Net.Mail.MailAddress(rw("电子邮件"), rw("姓名")))
        message.To.Add(rw("电子邮件"))
        message.Subject = "瓮安检察" & dr("流程名称") & "通知"
        message.BodyEncoding = System.Text.Encoding.UTF8
        Dim content As String
        content &= "【"& rw("姓名") & "】" & rw("称谓") & "您好!" & vbcrlf
        content &=  vbcrlf
        content &= dr("涉案人名") & "涉嫌" & dr("涉案罪名") & "一案,经我院" & dr("流程时间") & "审查,现在已经进入【" & dr("流程名称") & "】" & vbcrlf
        content &=  vbcrlf
        content &= dr("注意事项")
        message.Body = content
        Dim attachment As new  System.Net.Mail.Attachment("d:\test.xls",  System.Net.Mime.MediaTypeNames.Application.Octet)
        message.Attachments.Add(attachment)
        AddHandler client.SendCompleted, AddressOf SendCompletedCallback
        Dim userState As String = "test message1"
        client.SendAsync(message, userState)
        dr("是否告知")="是"
    Next
Next

 

2、你输入的发送的邮箱,必须正确。你【王五】的邮箱是错误的邮箱。


 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)1、Dim tbl As Table = Tables("人...  发帖心情 Post By:2019/2/12 15:52:00 [只看该作者]

谢谢有点甜 老师  那邮箱是我乱写的  实际调试时用得我自己的邮件
  
但是问题奇怪了  现在居然提示发送成功  就是收不到邮件了  

感觉这个方式不大稳定  还是QQ邮件发送有限制呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/12 15:54:00 [只看该作者]

用这种方式测试,看是否报错。

 

Dim client As New System.Net.Mail.SmtpClient()
'client.timeout = 1000 '1秒
client.Host = "smtp.qq.com"
client.Credentials = New System.Net.NetworkCredential("455189993@qq.com", "helen6849338.")
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network
Dim message As New System.Net.Mail.MailMessage
message.From = new System.Net.Mail.MailAddress("455189993@qq.com")
message.To.Add("765427475@qq.com")

'message.Bcc.Add("2450314695@qq.com") '密送

'message.cc.Add("2450314695@qq.com") '抄送

Dim content As String

content &= "这是文字" & vbcrlf
content &= "也是文字"

message.Body = content

Dim attachment As new  System.Net.Mail.Attachment("d:\test.xls",  System.Net.Mime.MediaTypeNames.Application.Octet)
message.Attachments.Add(attachment)

Try
    client.Send(message)
    msgbox("发送成功")
Catch ex As Exception
    msgbox("发送失败:" & ex.message)

finally

    message.Dispose()
End Try


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/12 15:54:00 [只看该作者]

如果报错,说明QQ邮箱有限制,参考

 

https://jingyan.baidu.com/article/915fc414f7a3e151394b20bb.html

 


 回到顶部