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的数据表中添加用户账号记录。可以直接插入记录,也可以使用存储过程。
本文介绍如何使用iMail邮件服务器程序与SQL Server数据库集成,实现通过编程方式管理邮件账号。包括配置外部数据库、创建邮件域及使用示例DLL文件等步骤。
360

被折叠的 条评论
为什么被折叠?



