以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  MailSender发信速度过快,怎么解决  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=27849)

--  作者:冰31脚
--  发布时间:2013/1/11 23:54:00
--  MailSender发信速度过快,怎么解决

代码如下,用计划管理来控制的,到时间会自动发,因为速度太快,经常导致很多发送失败。

 

 

For Each dr As DataRow In DataTables("综管").Select("月份营运报表_日期 <= #" & Date.Today.AddDays(-2) & "# ")
    If dr("确认已收货邮件")=False  Then
       
    Dim m As New MailSender

    Dim ln As String = vbcrlf & vbcrlf \'定义两个换行

    m.Host = "smtp.qq.com"

    m.Account = "1336181618@qq.com"

    m.Password = "123456"

    m.From = "1336181618@qq.com"

    m.AddReceiver(dr("备份邮箱"))

    m.Title ="中兴(ZTE)备件管理服务---- "  & dr("序号2") & " "  & dr("月份营运报表_日期")& " " & dr("服务执行单据记录表_申请号") & " 【补签回单,非常重要,请务必回复】"

    m.Content = m.Content & ln & "此邮件目的: 请您补签回单或回复邮件允许库房代签回单. "

    m.AddAttachments("E:\\管理系统\\管理系统V5.0\\Reports\\回单确认函.xls")

    m.SendAsync()
    End If
Next

 

 整个代码就上面那样了,怎样才能控制发信速度啊?

 


此主题相关图片如下:22121.png
按此在新窗口浏览图片

此主题相关图片如下:12131.png
按此在新窗口浏览图片

--  作者:lin_hailun
--  发布时间:2013/1/12 9:46:00
--  
简单的话,让程序等待几秒钟再发送,可能是因为要上传附件需要时间。

system.threading.thread.sleep(5000)

--  作者:狐狸爸爸
--  发布时间:2013/1/12 10:49:00
--  

最好做个计划,定时30秒发一次。

 


--  作者:冰31脚
--  发布时间:2013/1/12 13:25:00
--  

system.threading.thread.sleep(5000)

 

 

5000是秒吗?我想设置2分钟发一封,计划管理是30分钟启动一次。


--  作者:lin_hailun
--  发布时间:2013/1/12 14:25:00
--  
 你设置计划管理的启动时间就可以了。每次启动的时候发送一封邮件,用全局变量记录发送到了那一行数据就行了

 如果使用 system.threading.thread.sleep(5000),你还需要启动一个线程去做,不然,程序会"假死"
--  作者:冰31脚
--  发布时间:2013/1/12 16:47:00
--  

我现在就是在计划里设置的,但一到时间就会把需要发邮件的行全部都发出去,所以导致发信太快,怎么设置一次只发一行,两分钟这样发一次。

 

附现在设置时间:


图片点击可在新窗口打开查看此主题相关图片如下:20130112.png
图片点击可在新窗口打开查看

--  作者:lin_hailun
--  发布时间:2013/1/14 18:15:00
--  
以下是引用冰31脚在2013-1-12 16:47:00的发言:

我现在就是在计划里设置的,但一到时间就会把需要发邮件的行全部都发出去,所以导致发信太快,怎么设置一次只发一行,两分钟这样发一次。



你需要设置一个全局变量记录发送都了哪一行,2分钟以后,根据这个全局变量,去查找下一个行需要发送的内容,如此循环反复。

--  作者:冰31脚
--  发布时间:2013/1/15 10:37:00
--  

For Each dr As DataRow In DataTables("综管").Select("月份营运报表_日期 <= #" & Date.Today.AddDays(-2) & "# ")
    If dr("客户沟通_是否收货")=False  Then
       
        Dim Book As New XLS.Book(ProjectPath & "Attachments\\确认是否已收到备件--备件明细.xls")
        Dim fl As String = ProjectPath & "Reports\\确认是否已收到备件--备件明细.xls"
        Book.Build()
        Book.Save(fl)
        Dim Proc As New Process
        Proc.File = fl
       
       
        Dim m As New MailSender
        Dim ln As String = vbcrlf & vbcrlf \'定义两个换行
        m.Host = "smtp.qq.com"
        m.Account = "1336181618@qq.com"
        m.Password = "123456"
        m.From = "1336181618@qq.com"
        m.AddReceiver(dr("备份邮箱"))
        m.AddReceiver(dr("交接邮箱"))
        m.AddReceiver(dr("申请邮箱"))
        m.Title ="中兴(ZTE)备件管理服务---- "  & dr("序号2") & " "  & dr("月份营运报表_日期")& " " & dr("服务执行单据记录表_申请号") & " 【询问是否已收到货】 重要邮件,请勿更改主题直接回复此邮件,感谢您对我们工作的支持."
        m.Content = m.Content & ln & "此邮件目的: 确认是否收到派给您的备件"
        m.Content = m.Content & ln & "      您好,您于 " & dr("月份营运报表_日期")   & " 申请的,申请号为 " & dr ("服务执行单据记录表_申请号") & " 的备件已经于 " & dr("派送时间")& " 通过 " &  dr("派送方式") & "  为您派出,现与您确认是否收到派送备件,请回复邮件或电话告知我们,感谢您对我们工作的支持!"
        m.Content = m.Content & ln & "      查询/联系: " & ("派送方式") & " " & dr("派送记录") & " / 李政桥 18275886166 "
        m.Content = m.Content & ln & "      基本信息: " & vbcrlf & "      申请号: " & dr("服务执行单据记录表_申请号") & vbcrlf & "      申请人: " & dr("服务执行单据记录表_客户申请人及电话") & vbcrlf & "      交接人:" & dr("服务执行单据记录表_客户交接人及电话") & vbcrlf & "      派送地址: " & dr("月份营运报表_派送及取件详细地址") & vbcrlf & "      本次共派送:" & dr("派送件数") & " 件."
        m.Content = m.Content & ln & "      更多信息请下载附件查看,祝工作愉快."
        m.Content = m.Content & ln & "      " & dr("确认已收货邮件内容")  & vbcrlf &  "      指令单下载: " & dr("指令单")
        m.Content = m.Content & ln & "      若您已收到对应备件,请及时更换并将旧件及时返回库房."  & vbcrlf & "      " & dr("合作快递1_公司") & " : " & dr("合作快递1_联系方式") & vbcrlf & "      " & dr("合作快递2_公司") & " : "  & dr("合作快递2_联系方式")
        m.Content = m.Content & ln & "      如对我们及我们的供应商(如快递公司)的服务有任何不满的地方,请致电告知我们,感谢您对我们工作的支持."      & vbcrlf &  "      服务投诉: 0771-5346427"
        m.Content = m.Content & ln & "                                                                      祝工作愉快!"
        m.Content = m.Content & ln & "                                                                ZTE备件管理广西区配送中心"
        m.AddAttachments("E:\\管理系统\\管理系统V5.0\\Reports\\确认是否已收到备件--备件明细.xls")
        m.SendAsync()
        dr("客户沟通_是否收货")=True
    End If
Next

 

以前没有带附件的时候是正常的,现在带了附件就不正常了,提示如下,是什么原因?


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看


--  作者:lin_hailun
--  发布时间:2013/1/15 10:45:00
--  
 把这两句话去掉

Dim Proc As New Process
Proc.File = fl

 然后,看看文件路径是否正确。
       


--  作者:冰31脚
--  发布时间:2013/1/15 10:52:00
--  

还是会出错,是不是发信速度过快导致附件冲突?