IBM Aix上Qmail的建立

12/3/2006来源:Qmail人气:6415

Qmail是一款完全可以替代Sendmail邮件体系的新一代Unix邮件系统,相比Sendmail而言,它具有更高的安全性、可靠性及运行效率,并且安装配置都比较简单。qmail是自由软件,完全免费,遵从GPL版权声明,并且在internet上可以找到大量的qmail附加软件包来增强它的功能,因此,在各类邮件服务器解决方案中它拥有最旺的人气。

   我用的操作系统是IBM Aix4.32,但在qmail源代码包的README文件里,只有aix4.2及其以前版本成功的测试记录。下面介绍一下我在aix4.32上的安装过程,这与别的unix操作系统上的安装有些区别。

   我用的C编译器是gcc2.95.2,采用较流行的Maildir邮箱存储格式,使用系统用户作为邮件账户来满足最基本的收发邮件需求。通过访问http://www.qmail.org或mirror站点下载qmail的核心软件包qmail-1.03.tar.gz,在http://cr.yp.to/checkpwd/install.html下载pop3用户密码验证程序checkpassWord-0.90.tar.gz。

先解压缩软件包并进入解压后的源代码目录:gzip -dc qmail-1.03.tar.gz|tar xvf -;cd qmail-1.03

仔细阅读INSTALL和FAQ文件,并开始按步就班的安装编译源程序。

1、建立/var/qmail目录: mkdir /var/qmail

2、按照INSTALL.ids文件中的方法一一建立qmail各后台进程所要用到的用户和组。如果是通过命令行的方式来建立用户和组的话,则需要修改/etc/security/login.cfg文件,在里面添加/bin/true做为合法的shell,这样有点麻烦,建议直接修改/etc/group和/etc/passwd两个文件来建立用户和组,更方便有效。

3、qmail默认的编译器是cc,而我用的是gcc,所以有必要使得qmail在安装时调用gcc来编译。有两种方式可以解决此问题,一种方式是给gcc建立一个名为cc的象征性链接文件:ln -s /path-to-gcc/gcc /usr/bin/cc;另一种方式是修改conf-cc和conf-ld文件,将其默认的编译器cc替换为gcc。

开始编译及建立Qmail 的目录结构:make setup check

这一步是我在安装时遇到的最大阻碍,编译出错不能通过。凭借我对unix下C编程的一知半解及根据编译出错提示,我修改了dns.c文件,删除第11行“extern int h_errno;”。重新编译,通过,在后来的使用过程中也没有发现有什么问题,正常。在其它的unix操作系统上安装qmail时不会出现这样的情况,但到底在aix上为什么会这样,我目前还不大清楚,希望高人指点。

4、在配置qmail前,请认真阅读INSTALL.ctl和FAQ。配置命令有两个,config和config-fast,config将试图对本机IP地址在DNS上进行反向解析,从而确定本机域名;如果反向解析失败,则配置也就失败。建议用类似./config-fast your.full.host.name这样的命令直接确定本服务器主机域名来配置。

5、阅读INSTALL.alias文件,这里有对添加邮件用户别名的一些介绍。但至少也要给一些不能接收邮件的系统帐户添加别名,并修改/var/qmail/alias目录下所有文件的访问权限来增加安全性。

# (cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root)

# chmod 644 ~alias/.qmail*

6、有必要的话,可以先读一读NSTALL.mbox、INSTALL.maildir和INSTALL.vsm文件,这里介绍了有关qmail邮件存储格式和邮件投递方面的内容。

7、建立/var/qmail/rc。/var/qmail/rc是用来启动qmail的文件,很重要。拷贝/var/qmail/boot/home到/var/qmail/rc。

# cp /var/qmail/boot/home /var/qmail/rc

# chmod 755 /var/qmail/rc

我们采用Maildir邮箱存储格式,对rc文件做相应的修改,修改其中./Mailbox为./Maildir,修改后的内容如下:  

exec env - PATH="/var/qmail/bin:$PATH" \

qmail-start ./Maildir splogger qmail

8、启动qmail: csh -cf '/var/qmail/rc %26amp;'

最好将这条命令加到系统的启动文件中,以便以后在系统重启时自动启动qmail。参照TEST.deliver介绍的方法进行测试。

9、如果当前系统上已安装有sendmail并且在使用中,那么请参照SENDMAIL、REMOVE.sendmail、REMOVE.binmail等文件做好从sendmail向qmail的转移。别忘了安装qmail的sendmail外壳:

# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

10. 安装checkpassword。它用于对pop3用户的密码验证,安装也很简单,过程如下:

gzip checkpassword-0.90.tar.gz

tar -xf checkpassword-0.90.tar

cd checkpassword-0.90

make

make setup check

11、编辑/etc/inetd.conf文件,设置qmail-smtpd,用于发信,如下所示(所有文字在同一行):

smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd

同样,添加qmail-pop3d,用于收信,如下所示(所有文字在同一行):

pop3 stream tcp nowait root /var/qmail/bin/qmail-popup qmail-popup your.domain.name /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir

12、重新启动inetd:refresh -s inetd

13、创建邮件用户。在每个用户的初始目录下用命令/var/qmail/bin/maildirmake创建邮箱目录并赋予适当的权限,也可以建立一个Shell脚本程序来完成每个邮件账户的创建,下面是一个简单的例子,请创建好一个名为mailgrp的组,用于将邮件用户加入到此组,如果给此脚本程序命名为qmadd,则增加邮件账户的语法为:qmadd


if test $1

then

echo "creating user $1 and its maildir directory..."

mkuser pgrp='mailgrp' $1

cd /home

chown $1 $1

cd $1

/var/qmail/bin/maildirmake Maildir

echo ./Maildir/ > .qmail

chown $1 Maildir

chown $1 Maildir/*

chown $1 .qmail

passwd $1

echo "$1's account has been created!"

else

echo "Usage: qmadd username"

fi

14、测试。如果邮件服务器是用在internet上,别忘了DNS上的mx记录应指向本服务器的IP地址。在TEST.receive文件中介绍了一些对邮件收发的测试方式。在此我建议在windows客户机上用FoxmailOutlook来做收发邮件测试,这样更为简便有效。另外要注意/var/qmail/control目录下一些文件的配置,rcpthosts文件用于对转发信的限止,me文件表示系统的正式域名,timeoutconnect文件用于设置SMTP连接超时时间等。

   本文只是介绍了qmail最基本的安装配置,如果要使得qmail有虚拟域支持、邮件列表管理、自动回复、webmail、web方式管理、web方式用户注册等功能,那需要安装另外的附加软件包,相关资料大家可以在internet上查找,有很多,虽然这些资料大都是针对linux操作系统的,不过aix上的安装配置也大同小异,所以在这就不多做介绍了。
,