郵件清單 郵件清單(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 = "Guest0@Test.com"
mail.To = "Guest1@Test.com"
' 郵件內容
mail.Body = "郵件內容."
' 發送郵件
mail.Send
Set mail = Nothing
JMail是完全免費的,由Dimac開發。用它來發送郵件的代碼為:
' 建立對象
Set JMail = Server.CreateObject("JMail.SMTPMail")
' 指定郵件伺服器
JMail.ServerAddress = "mail.mydomain.com"
' 寄件者,收件者,主題
JMail.Sender = "admin@Test.com"
Jmail.AddRecipientEx "Guest0", "Guest0@Test.com"
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()。所有其它欄位的含義均可從其名字看出。