IMail 外部数据库

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

iMail是一种非常优秀的基于win平台的mail server程序,在中小型应用中受到广泛的欢迎。

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 account.

用sqlserver 的 user 配完系统的ODBC后

再在IMAIL EXTERNAL DATABASE 的CONFIG里

IMAILSECDB; UID=username; PWD=password

后就一切正常了!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航