郵件列表(Mailing List)是當前最受歡迎的網絡服務之一。本文通過一個示例系統的建設,介紹在ASP環境下郵件列表功能的實現方法。
ChinaByte網絡學院的《java Mail API及其應用》一文介紹了在Java中簡單郵件列表服務功能的實現方法,本文介紹的是類似功能在ASP應用中的實現。我們將通過一個示例系統具體說明其實現過程。
一、系統概貌
整個應用系統可以分為兩個部分,即面向最終用戶的功能和面向管理任務的功能。面向最終用戶的功能主要包括:提供輸入界面讓用戶輸入個人信息(用戶名字和Email地址等)並將其注冊到“客戶登記簿”,提供“取消訂閱郵件列表”功能。
管理員訪問管理界面之前應通過簡單的安全檢查。成功進入管理界面之後,管理員需要執行的操作包括查看、編輯和刪除用戶記錄,編輯郵件以及發送郵件給所有訂閱者。
向訂閱者發送郵件需要用一個服務器部件來完成。在本實現中我們將使用ServerObjects的ASPMail 3.0。據該公司網站介紹,在所有商業或免費的類似產品中,ASPMail在ASP環境下的應用最為廣泛,包括Microsoft、Intel、HP在內的許多公司均使用ASPMail,從它的Web網站可以下載試用版本。試用版本的ASPMail將在由它所發送的每個郵件末尾加上版權聲明。當然,也可以選用其它類似的服務器部件,包括jmail以及NT 服務器(Service Pack 4)提供的CDONTS.NewMail對象。下面我們簡單介紹這兩個部件的使用,你可以按照這裡的介紹替換本文實現中的ASPMail。
CDONTS只有在NT服務器上才是可用的。而ASPMail除了NT服務器、工作站之外還可以用於Win9x。CDONTS是Collaboration Data Objects for NT Server的縮寫,郵件的發送任務可以用它的NewMail對象完成。和ASPMail以及Jmail不同,NewMail對象不要求指定SMTP服務器信息,它總是假定郵件是通過本地機器上安裝的郵件服務發送的。發送一個簡單的純文本郵件的VBScript代碼如下:
' 創建NewMail對象實例
Set mail = Server.CreateObject("CDONTS.NewMail")
' 設置收件人,發件人等信息
mail.From = "[email protected]"
mail.To = "[email protected]"
' 郵件內容
mail.Body = "郵件內容."
' 發送郵件
mail.Send
Set mail = Nothing
Jmail是完全免費的,由DiMac開發。用它來發送郵件的代碼為:
' 創建對象
Set Jmail = Server.CreateObject("Jmail.SMTPMail")
' 指定郵件服務器
Jmail.ServerAddress = "mail.mydomain.com"
' 發件人,收件人,主題
Jmail.Sender = "[email protected]"
Jmail.AddRecipIEntEx "Guest0", "[email protected]"
Jmail.Subject = "郵件主題"
' 郵件內容
Jmail.Body = "郵件內容"
' 發送郵件
Jmail.Execute
我們用Access數據庫guestbook.mdb來存儲用戶信息。該數據庫只含一個表Guests。Guests表的字段名稱及其類型如下:
Guests表結構
字段名稱 類型 大小 說明
Guest_ID 自動編號 長整形 主鍵
Guest_Name 文本 50
Guest_Email 文本 50
Mail_List 是/否
Sign_Date 日期/時間
Guest_Comment 文本 255
每個用戶記錄都需要一個唯一標識,因此我們將這裡的Guest_ID字段定義為自動編號類型。將Mail_List字段設為是/否類型使得我們可以快速和方便地檢查用戶是否要求加入郵件列表。Sign_Date字段保存的是用戶注冊日期,請將其缺省值設置為Now()。所有其它字段的含義均可從其名字看出