日期:2014-05-17  浏览次数:20787 次

时间还有半个月就到期的时候自动发邮件通知的问题.
有个会员表里有时间
开始时间   begindate
结束时间   enddate

会员很多,如果快到期了自动发邮件大家有什么好的方法吗?感觉不太好实现,

大家有遇到过吗?

------解决方案--------------------
可以实现,只是要定时去运行某个程序或在数据库中触发存储过程来判断
------解决方案--------------------
楼上说的对,asp不能实现这样的功能,只能另外单独开发一个小软件,在服务器上运行,每天检查数据库中的数据,对符合要求的邮件发送信息。
------解决方案--------------------
taskjob 或者托盘程序,每天某一个时段自动检查就是了
------解决方案--------------------
写VBS 脚本 让服务器通过任务计划定时调用就可以了
------解决方案--------------------
要加两个字段就可以了,可以触发

第一个字段是上次发邮件的时间,

判断如果没有超过一定的时间就不要发,不能不停地发呀,发过一次就更新这个时间

第二个是这个用户已经被发了几次了,限制次数
------解决方案--------------------
用的什么数据库? sql里用存储过程,然后在作业里调用
------解决方案--------------------
sql里用存储过程,然后在作业里调用

2也可以用代码来写,但是要保证每天要有人登录,在常用的页面里面写一段代码来处理这件事情,只要有人访问,就会执行,执行那些快要到期的用户(并且当天没有发过邮件的用户),或执行的时候判断日期(时间)字段,如果当天发过了,就不要发了,如果没有发,那么就发一个
------解决方案--------------------
set rs = conn.execute( "select comEmail,comID,comPWD from memberCompany where comMark=0 ")
do while not rs.eof
mail = rs(0)
strContent = "您好: <br> "
strContent = strContent& "您的用户名: "&rs(1)& " <br> "
strContent = strContent& "您的密码: "&rs(2)& " <br> "
strContent = strContent& "请点击 <a href= ' "&webUrl& " ' target= '_blank '> "&webUrl& " </a> 登陆 <br> "

set jmail = CreateObject ( "jmail.message ") ' '创建对象
jmail.Silent = true ' '一般不用改
jmail.Charset = "gb2312 " ' '信件的语言编码
jmail.ContentType = "text/html " ' '信件的格式html或纯文本
jmail.From = webEmail ' '发信人邮箱
jmail.FromName = webName ' '发信人姓名
jmail.Subject = "百信人才网欢迎您! " ' '信件主题
jmail.AddRecipient mail ' '收信人地址
jmail.Body = strContent ' '信件正文
jmail.MailServerUserName = webEmailUserName ' '服务器登陆用户名(您的邮件地址)
jmail.MailServerPassWord = webEmailUserPWD ' '服务器登陆密码(您的邮件密码)
jmail.Send(webSmtp) ' '服务器地址
jmail.Close
set jmail = nothing
rs.movenext
loop
rs.close

上面的代码拷贝下来,保存到.vbs文件里,把代码该成你自己的,然后在系统里的 "计划任务 "里执行这个vbs脚本
------解决方案--------------------
你可能只有用第二个方法了,

不过还有一个办法,就是做个后台,每天定时触发一次,前提,服务器要是你自己的,如果是虚拟主机,就不好办了
------解决方案--------------------
确实只能做一个小软件,开机就运行,定时发送