一直以为asp定时发邮件(执行程序)一定要使用服务器的“任务计划”才可以实现。最近发现不需要,可以利用global.asa文件来实现。注意:这个文件一定要放在网站的根目录下。
下面是一个定时发送邮件的举例代码,中间的注意的地方可以改成其它代码,如将过期的产品下架,定时发送邮件等。代码如下:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
Application("SessionCount") = 0
End Sub
Sub Session_OnStart
Application.Lock
Application("SessionCount") = Application("SessionCount") + 1
Application.Unlock
If Application("SessionCount") > 15 Then
Application.Lock
Application("SessionCount") = 0
Application.Unlock
Set ObjMyFile = CreateObject("Scripting.FileSystemObject")
Set OpenMyFile = ObjMyFile.OpenTextFile(Server.MapPath("last-update.txt"))
MyFileValue = OpenMyFile.ReadLine '读取被保存在last-update.txt中的上一次执行的时间
OpenMyFile.Close
If DateDiff("h",MyFileValue,NOW) > 24 Then '每24小时定时运行一次
' 这里输入你要运行的程序
' 不需要添加<%与%>标签
' 例如:向会员发送一封邮件
' ***************************************
' 这里放上发邮件的代码,见:
' http://www.aspbc.com/tech/showtech.asp?id=25
' ***************************************
Set WriteMyFile = ObjMyFile.CreateTextFile(Server.MapPath("last-update.txt"))
WriteMyFile.WriteLine(NOW) '保留当前运行的时间,以便供下次使用,这个时间也可以保存到数据库中,这里就直接放到一个记事本中了。
WriteMyFile.Close
End if
End If
End Sub
</SCRIPT>(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)
文件名必须是global.asa
发送邮件代码见:http://www.aspbc.com/tech/showtech.asp?id=25
