Foxtable(狐表)用户栏目专家坐堂 → 发邮件间隔时间求助


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

主题:发邮件间隔时间求助

帅哥哟,离线,有人找我吗?
晕了快扶我
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1208 积分:7241 威望:0 精华:0 注册:2013/3/4 18:02:00
发邮件间隔时间求助  发帖心情 Post By:2013/8/3 11:38:00 [只看该作者]

代码如下,因为邮箱限制的问题,导致只能发一封,如何在代码里加入等待时间呢?

Dim sendmail As String = e.Form.Controls("发件箱选择").Text
Dim title As String = e.Form.Controls("标题内容").Text
Dim nn As String = e.Form.Controls("正文内容").Text
Dim dr As DataRow = DataTables("发件箱表").Find("发件人地址 = '" & sendmail & "'")
Dim sp As New System.Net.Mail.SmtpClient(dr("smtp"),25)
sp.Credentials = New System.Net.NetworkCredential(dr("帐号"),dr("密码"))
'创建邮件
Dim mail As New System.Net.Mail.MailMessage()
'邮件主题
For Each r As DataRow In DataTables("收件人列表").DataRows
    mail.Subject = title & r("姓名")
    '主题编码
    mail.SubjectEncoding = System.Text.Encoding.GetEncoding("GB2312")
    '邮件正文件编码
    mail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312")
    '发件人邮箱
    mail.From = New System.Net.Mail.MailAddress(sendmail)
    '邮件优先级
    mail.Priority = System.Net.Mail.MailPriority.Normal
    'HTML格式的邮件,为false则发送纯文本邮箱
    mail.IsBodyHtml = True
    '邮件内容
    mail.Body = nn
    '添加收件人,如果有多个,可以多次添加
    mail.To.Add(r("邮件地址"))
    '定义附件,参数为附件文件名,包含路径,推荐使用绝对路径
    '如果不需要附件,下面三行可以不要
    'Dim a As New System.Net.Mail.Attachment("附件文件路径")
    '附件文件名,用于收件人收到附件时显示的名称
    'a.Name = "附件文件名"        '加入附件,可以多次添加
    'mail.Attachments.Add(a)'发送邮件
    Try
        sp.Send(mail)
        MessageBox.Show("发送成功")
        Catch
        MessageBox.Show("发送失败")
    Finally
        mail.Dispose()
    End Try
Next


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/8/3 11:48:00 [只看该作者]

增加个发送完成的标志列,增加一个5分钟执行一次的计划,每次都找出第一个没有发送的行,发送邮件完成后,将标识列设置一下。

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


加好友 发短信
等级:六尾狐 帖子:1208 积分:7241 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/3 11:52:00 [只看该作者]

以下是引用狐狸爸爸在2013-8-3 11:48:00的发言:
增加个发送完成的标志列,增加一个5分钟执行一次的计划,每次都找出第一个没有发送的行,发送邮件完成后,将标识列设置一下。

狐爸,这样判断的话弹窗很多啊


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


加好友 发短信
等级:六尾狐 帖子:1208 积分:7241 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/3 11:53:00 [只看该作者]

而且还有个毛病,因为这些人不是只发一次邮件的,这个标示列的判断很啰嗦啊,没效率啊

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/8/3 11:57:00 [只看该作者]

例如你要等三秒再执行下一行代码:

 

Threading.Thread.Sleep(3000)

 


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1208 积分:7241 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/3 12:05:00 [只看该作者]

以下是引用狐狸爸爸在2013-8-3 11:57:00的发言:

例如你要等三秒再执行下一行代码:

 

Threading.Thread.Sleep(3000)

 

那在循环代码中如何暂停呢?


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/8/3 12:06:00 [只看该作者]

for each dr as datarow in datatables("xxx").datarows

    '原来的代码

    Threading.Thread.Sleep(3000)

next


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1208 积分:7241 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/3 12:47:00 [只看该作者]

以下是引用狐狸爸爸在2013-8-3 12:06:00的发言:

for each dr as datarow in datatables("xxx").datarows

    '原来的代码

    Threading.Thread.Sleep(3000)

next

狐爸,我错了,应该不是QQ邮箱的问题,我间隔时间到了5分钟,第一封成功,第二封开始依然是发送失败,用msgbox看了收件人的地址是正确的

代码看了半天也看不出来问题。。

[此贴子已经被作者于2013-8-3 12:47:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1208 积分:7241 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/3 12:50:00 [只看该作者]

搞定了图片点击可在新窗口打开查看

 回到顶部