以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]邮件发送有点疑问  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=118799)

--  作者:81538475
--  发布时间:2018/5/11 11:21:00
--  [求助]邮件发送有点疑问

这个代码放到哪里比较好呢。

如果希望这个代码只执行一次,改如何处理。


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

m.Host = 
"smtp.21cn.net"
m.Account = 
"xiaoliu"
m.Password = 
"xiaoliu1234567"
m.From = 
"xiaoliu@Sina.com.cn"
For Each 
dr As DataRow In DataTables("借款").Select("到期日期<= #" & Date.Today.AddDays(10& "#")
    m
.To = dr("邮件地址"
)
    m
.Title = 
"催款通知"
    
m.Content = dr("姓名"& dr("尊称"& ":" & ln & "您的贷款将于" & dr("到期日期"& "到期, " 
    m
.Content = m.Content & "金额为" & dr("金额"& "元, 请准时还款!" & ln & "某某公司" & vbcrlf & Date.
today
    m.SendAsync()

Next

 


--  作者:有点甜
--  发布时间:2018/5/11 11:34:00
--  

1、代码写到afterOpenProject事件,或者计划管理那里;

 

2、发送加上条件,"到期日期<= #" & Date.Today.AddDays(10) & "# and 已还款 = False"

 

3、只执行一次,是一天执行一次,还是怎样?


--  作者:81538475
--  发布时间:2018/5/11 11:42:00
--  
恩。一天只执行一次。
--  作者:有点甜
--  发布时间:2018/5/11 12:04:00
--  
以下是引用81538475在2018/5/11 11:42:00的发言:
恩。一天只执行一次。

 

表格加一个列【发送邮件日期】,你发送邮件以后,给这个列赋值 dr("发送邮件日期") = Date.Today

 

筛选条件改成  "到期日期<= #" & Date.Today.AddDays(10) & "# and 已还款 = False and (发送邮件日期 < #" & date.today & "# or 发送邮件日期 is null)"

[此贴子已经被作者于2018/5/11 12:05:10编辑过]

--  作者:81538475
--  发布时间:2018/5/11 12:52:00
--  

麻烦看看这个代码有没有啥问题。为何结果只发了同一个人的。output.show的结果正常

For Each dr As DataRow In DataTables("人员信息表").S el ect("到期时间 <= #" & Date.Today.AddDays(5) & "# And (状态 = \'试用\' Or 状态 = \'实习\')")
    output.Show(dr("姓名"))
    m.Title = "【武汉渲奇MIS】-" & dr("姓名") & "(试用/实习)到期通知!"
    m.Co nt ent = "HI,all”
    m.SendAsync()
Next


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

[此贴子已经被作者于2018/5/11 12:54:43编辑过]

--  作者:有点甜
--  发布时间:2018/5/11 12:54:00
--  

这个代码不能少

 

m.To = dr("邮件地址")


--  作者:81538475
--  发布时间:2018/5/11 12:58:00
--  
接收的邮箱是同一个也要这样写吗,所以放到了上面。完整的代码是这样的

Dim m As New MailSender
Dim ln As String = vbcrlf & vbcrlf \'定义两个换行
m.Host = "smtp.ym.163.com"
m.Account = "sp_mis@starpainters.net"
m.Password = "******"
m.From = "sp_mis@starpainters.net"
m.to=("cxw@starpainters.net")

For Each dr As DataRow In DataTables("人员信息表").Se le ct("到期时间 <= #" & Date.Today.AddDays(5) & "# And (状态 = \'试用\' Or 状态 = \'实习\')")
    output.Show(dr("姓名"))
    m.Title = "【武汉渲奇MIS】-" & dr("姓名") & "(试用/实习)到期通知!"
    m.Co nte nt = "HI,all:" 
    m.SendAsync()

Next

[此贴子已经被作者于2018/5/11 14:06:14编辑过]

--  作者:有点甜
--  发布时间:2018/5/11 15:07:00
--  

接收邮箱是同一个,那你希望发多少封邮件?邮件的内容是什么?

 

发一封?

 

Dim m As New MailSender
\'Dim ln As String = vbcrlf & vbcrlf \'定义两个换行
m.Host = "smtp.ym.163.com"
m.Account = "sp_mis@starpainters.net"
m.Password = "******"
m.From = "sp_mis@starpainters.net"
m.To=("cxw@starpainters.net")

Dim s As String = ""
For Each dr As DataRow In DataTables("人员信息表").Select("到期时间 <= #" & Date.Today.AddDays(5) & "# And (状态 = \'试用\' Or 状态 = \'实习\')")
    s &= dr("姓名") & ","
Next
m.Title = "【武汉渲奇MIS】-(试用/实习)到期通知!"
m.C & s
m.SendAsync()


--  作者:81538475
--  发布时间:2018/5/11 15:14:00
--  
用下面的代码找出来的有6个人,每个人的情况都需要单独发一封邮件到指定的邮箱 cxw@starpainters.net。 那就是6封不同的邮件。
但是目前发送的只有最后一个人信息的邮件,而且重复发了6便

For Each dr As DataRow In DataTables("人员信息表").Sel e ct("到期时间 <= #" & Date.Today.AddDays(5) & "# And (状态 = \'试用\' Or 状态 = \'实习\')")   



--  作者:81538475
--  发布时间:2018/5/11 17:49:00
--  
测试了半天还是没有找到原因,上传一个样例,麻烦帮忙看看是什么情况。
麻烦修改下发送邮箱帮忙测试一下。
希望达到的效果是,第一列里面每个名字都会以一个单独的邮件发送。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.table