iMail是一種非常優秀的基於win平台的mail server程式,在中小型應用中受到廣泛的歡迎。
iMail有三種使用者資料介面方式:
·預設:存放於系統註冊表中。
·系統帳號:使用者資料依賴於nt/2000使用者管理
·外部資料方式:以ODBC介面方式串連的外部資料庫方式
如果想使用編程的方式管理IMail郵件帳號,可採用外部資料庫方式管理郵件帳號。下面討論使用SQL Server管理IMail帳號的方法。
在使用外部資料庫之前,需要現在控制台中建立一個系統資料來源DSN(Data Source Name)。這個DSN指向一個SQL Server資料庫,資料庫名和DSN名字可任取,比如IMAILDB。需要注意的是,必須使用TCP/IP具名管道以確保正確使用。
配置好資料來源後,就可以使用這個DSN所指資料庫的建立一個郵件域。
1. 在IMail Administrator中,右擊localhost,選擇 Add Host
2. 跳過歡迎頁面,輸入一個Domain Name
3. 選擇使用External Database,點擊Configur,出現External User Database對話方塊
IMail使用一個動態連結程式庫DLL串連外部資料庫。IMail內建了一個樣本性DLL檔案ODBCUSER.DLL,這個DLL使用ODBC方法訪問資料,但是使用者也可以自己開發DLL使用其他方法訪問外部資料庫,這個自訂的DLL需要實現GetUserEntry, SetUserEntry, DeleteUserEntry, AuthorizeUser, GetFirstUserEntry, GetNextUserEntry等方法。可以從inswitch.com下載ODBCUSER.DLL的原始碼和介面。
在External User Database對話方塊中,在External Database Impementation DLL輸入ODBCUSER.DLL(或自訂DLL)的完全路徑,ODBC System Data Source Name中輸入實現建立的DSN的名字。需要注意的是,在SQL Server 7.0以上版本中,在DSN域中需要同時指定DSN的串連使用者名稱和密碼DSN_NAME;UID=<username>;PWD=<password>。在Table Name中輸入要建立的郵件使用者表的名字。如果保持[default]預設值,則IMail會自動以郵件域的名字作為表名。
點擊OK,IMail會自動在DSN指定的資料庫中建立一個郵件帳號表。這個表具有如下的結構:
USERID - varchar(31)...........使用者名稱
PASSWORD - varchar(31).........密碼
FULLNAME - varchar(63).........全名
USERDIR - varchar(255).........使用者目錄
MAILADDR - varchar(255)........郵件地址(如abc@my.com)
MAXSIZE - integer..............最大郵件大小
MAXMSGS - integer..............最大訊息大小
FLAGS - integer
TYPE - integer
NUMTRIES - integer
ATTEMPTTIME - integer
NUMTIMESSUSP - integer
LASTLOGIN - integer
SPNDUSRACCT - integer
ICALENBL - integer
SPELLENBL - integer
NUMSGSTNS - integer
IWDEPTH - integer
IWOPTIONS - integer
SPELLCHKG - integer
PRVWSIZE - integer
DEFVIEW - varchar(40)
TIMEZONE - varchar(255)
STRTDAY - integer
DEFCALNM - varchar(40)
ENTRYGRNL - integer
STARTTIME - integer
ENDTIME - integer
MAXEVNTDISP - integer
MAXTSKDISP - integer
MAXNOTEDISP - integer
MAXDLYRCURCNT - integer
MAXWKLYRCURCNT - integer
MAXMONRCURCNT - integer
MAXYRLYRCURCNT - integer
DISPCMPLTDTSKS - integer
HOURSCLOCK - integer
MAXSRCHRESPPG - integer
MAXEVENTTITLELEN - integer
MAXTASKTITLELEN - integer
CONFIRMONDELETE - integer
好了,現在IMail的郵件帳號由SQL Server管理了。以後,可以通過IMail Administrator添加使用者帳號,也可以直接在SQL Server中加入使用者帳號。這樣,就可以通過編程的方式自動建立使用者帳號了。只需要兩步:
1.為郵件伺服器上使用者帳號建立郵件存放目錄
2.在SQL Server的資料表中添加使用者帳號記錄。可以直接插入記錄,也可以使用預存程序。