iMail有三種用戶數據接口方式:
。默認方式:存放于系統注冊表中。
。系統帳號:用戶數據依賴于nt/2000用戶管理,此種方式常用于局域網環境中,而在互聯網服務器應用中,系統帳號越少,則服務器被入侵的可能越少,自是不便使用。
。以ODBC接口方式連接的外部數據庫方式。
一、ODBC庫表結構設置
imail提供了一個動態鏈接庫odbcuser.dll,通過這個接口,imail可以使用odbc的數據源,在外部數據庫中保存用戶列表。odbcuser.dll已經在imail的安裝目錄下面。其vc++源程序可以在ftp://ftp.ipswitch.com/Ipswitch/Product_Support/IMail/odbcuser.zip下載到。打開odbcuser.zip中的readme.txt文件我們可以看到表結構定義(如下),依此建表。
Default ODBC Tables
-------------------
The default ODBC table consists of 9 entries:
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
二、創建系統DSN并設置iMail采用ODBC方式。
1、在系統DSN中添加相應系統數據源。
2、在iMail Administrator中選取主機,將radio按鈕設為“Extenal Database”,選擇Configure...按鈕進行ODBC設置。
3、搞定
三、程序設計。
由于iMail用戶數據存儲于數據庫中,添加用戶自然可以用asp/php/jsp等web程序對數據表做相應操作即可。
創建abc@my.com的郵件,只需要向庫中添加“abc”的USERID記錄,再添加 相應的用戶目錄即可。
刪除、修改。。。等操作也都較為簡單,不再廢話。
BTW:
若采用mysql做為用戶數據,在添加用戶時一定記住將USERDIR中的""字符replace為“\\”。
--------------------------------------------------------
1.對于所有帳號,沒有密碼算法,所有的密碼以明文顯示,不保密!
2.對于非本機的SQL,ODBC測試是通過的,但在Imail中卻無法加入用戶信息.(提示存取錯誤).
3.無法使用該方式修改郵件用戶列表.
4.用ODBC連接SQL做外部數據庫,從其他郵件系統給imail發郵件總是報550:unknown user的錯誤。
5.用外部數據庫(sqlserver)時遇到問題!
ODBC配置中只能用WIN NT 驗證方式!用sqlserver
user(例如:SA) IMAIL 出錯,連接數據庫失??!
SYSLOG 中信息是:
04:10 22:03 ODBC(220358100) (Table: (null)) Initialize:SQLDriverConnect (Check userid and password on server.)
04:10 22:03 ODBC(220358100) (Table: root_net) IsValidTable:SQLAllocHandle-hStmt
04:10 22:03 ODBC(220358100) (Table: root_net) CreateTable ERROR SQLAllocHandle
04
用WIN NT 驗證方式!可成功產生表,并可正常登陸使用郵箱。
但又有新問題! 用WIN NT 驗證方式連接另外服務器上的sqlserver 可正常生成用戶(表里都保存了用戶的信息),但無論是WEB,還是POP3形式都服務登陸郵箱,郵箱用戶的身份無法通過?。。。????
[color=blue>解答:
數據庫的信息的傳輸是有安全保障的。這是由SQL Server 控制的。 SQL Server 已經考慮到了數據傳輸的安全性的。數據庫中的數據是否加密是沒有關系的。
如果你沒有辦法保存信息,請你檢查你的sql server 的用戶權限設置。
For users using SQL 7.0 or above: In the ODBC Data Source Name input the line: IMAILSECDB; UID=username; PWD=password. The user name and password need to be the user ID and password for the SQL database and not an IMail Server aclearcase/" target="_blank" >ccount.
用sqlserver 的 user 配完系統的ODBC后
再在IMAIL EXTERNAL DATABASE 的CONFIG里
用
IMAILSECDB; UID=username; PWD=password
后就一切正常了!