一直以為ASP定時發郵件(執行程序)一定要使用服務器的“任務計劃”才可以實現。最近發現不需要,可以利用global.asa文件來實現。注意:這個文件一定要放在網站的根目錄下。
下面是一個定時發送郵件的舉例代碼,中間的注意的地方可以改成其它代碼,如將過期的產品下架,定時發送郵件等。代碼如下:
01
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
02
Sub
Application_OnStart
03
Application(
"SessionCount"
) = 0
04
End
Sub
05
06
Sub
Session_OnStart
07
Application.Lock
08
Application(
"SessionCount"
) = Application(
"SessionCount"
) + 1
09
Application.Unlock
10
If
Application(
"SessionCount"
) > 15
Then
11
Application.Lock
12
Application(
"SessionCount"
) = 0
13
Application.Unlock
14
Set
ObjMyFile = CreateObject(
"Scripting.FileSystemObject"
)
15
Set
OpenMyFile = ObjMyFile.OpenTextFile(Server.MapPath(
"last-update.txt"
))
16
MyFileValue = OpenMyFile.ReadLine
'讀取被保存在last-update.txt中的上一次執行的時間
17
OpenMyFile.Close
18
If
DateDiff(
"h"
,MyFileValue,NOW) > 24
Then
'每24小時定時運行一次
19
' 這裡輸入你要運行的程序
20
' 不需要添加<%與%>標簽
21
' 例如:向會員發送一封郵件
22
' ***************************************
23
' 這裡放上發郵件的代碼,見:
24
' http://www.aspbc.com/tech/showtech.ASP?id=25
25
' ***************************************
26
Set
WriteMyFile = ObjMyFile.CreateTextFile(Server.MapPath(
"last-update.txt"
))
27
WriteMyFile.WriteLine(NOW)
'保留當前運行的時間,以便供下次使用,這個時間也可以保存到數據庫中,這裡就直接放到一個記事本中了。
28
WriteMyFile.Close
29
End
if
30
End
If
31
End
Sub
32
</SCRIPT>
(鼠標移到代碼上去,在代碼的頂部會出現四個圖標,第一個是查看源代碼,第二個是復制代碼,第三個是打印代碼,第四個是幫助)文件名必須是global.asa