以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  求助:如何实现根据多行选择,进行发送多封邮件!  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=130946)

--  作者:李孝春
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间: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、你输入的发送的邮箱,必须正确。你【王五】的邮箱是错误的邮箱。


--  作者:李孝春
--  发布时间:2019/2/12 15:52:00
--  回复:(有点甜)1、Dim tbl As Table = Tables("人...
谢谢有点甜 老师  那邮箱是我乱写的  实际调试时用得我自己的邮件
  
但是问题奇怪了  现在居然提示发送成功  就是收不到邮件了  

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

--  作者:有点甜
--  发布时间: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


--  作者:有点甜
--  发布时间:2019/2/12 15:54:00
--  

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

 

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