使用SQL Server管理IMail邮件账号

来源:互联网 发布:ios开发和java开发 编辑:程序博客网 时间:2024/06/11 18:30

         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的数据表中添加用户账号记录。可以直接插入记录,也可以使用存储过程。

原创粉丝点击