[功能:强,配置:非常复杂 易用性:一般,扩展性:非常强,成本:中]
这一类我们选用了著名的QMail基于Linux(当然,也可以是在其他Unix系统上,不过具体的操作可能会有一些区别)操作系统来搭建,比较适合富有探索和钻研精神,有一定的Unix/Linux操作基础的企业用户使用。
QMail+Linux的组合非常适合将来在邮件系统的基础上增加发送到短信网关、内容过滤、杀毒模块或者其他扩展功能,并且希望能够支持用户的数量非常大的场合。由于秉承了Unix/Linux一贯低开销的性能特点,因此这种方式还能够很好地利用过时的桌面系统来搭建高性能的电子邮局,代价就是维护和管理需要更多的时间。
由于QMail是一个扩展性非常强大的MTA(邮件传输代理),而不是一个完整的邮件系统,如果要搭建一个功能丰富的基于QMail的邮件系统,我们需要相当多的时间来对过程进行叙述,所以我们在这里只介绍采用QMail搭建一个最基础的邮件系统。当然,更多的功能和组件我们也会在最后逐一进行介绍,方便大家选用和参考。
准备工作
基础的邮件系统包含了SMTP/POP3和简单的用户管理功能,这样就只需要下面这几个软件包:
1、QMail,主要的MTA和信箱管理工具,下载网址:qmail.org/netqmail/。
我们都知道,在使用开源软件的时候,最大的麻烦就是修补和编译,好在QMail的最稳定的版本已经有非常长的时间没有更新过了。而第三方也有了非常完善的整合包,也就是把很多比较优秀的修补整合到一起发布。
我们这次就采用了qmail.org/netqmail/制作的整合包,可以非常好地实现目前流行的SMTP/POP3功能,甚至包括支持SMTP认证等QMail官方版本不支持的功能。
2、vPOPMail,支持邮件用户和件域的管理,下载网址:www.inter7.com/vpopmail.html/ 。
由于QMail官方版本是采用系统的用户来作为邮件用户的,这样就带来2个问题。第一是系统用户可能会带来一些安全上的问题;第二就是系统文件的认证方式会带来性能和用户数量的问题,给管理带来不便。这个程序就是用来弥补这两个缺陷的,我们甚至可以通过这个软件把用户数据放到数据库或者LDAP里面。并且可以创建多个虚拟的邮件域,在单个主机上同时给多个邮件域提供服务。
3、UCSPI-TCP,给QMail提供TCP服务支持,下载网址: cr.yp.to/ucspi-tcp.html 。
由于QMail本身是不提供网络层次的功能的,整个MTA是通过UNIX的标准输出、管道等技术来和网络辅助工具交换数据的,因此QMail还需要一个辅助工具来从网络连接和客户端/其他邮件服务器来交换数据。传统的UNIX都有Inetd这个辅助进程,但是目前看来,这个程序性能和功能都比较过时了,而UCSPI-TCP是QMail官方首选的网络辅助程序,所以我们就采用了这个程序。
开始安装
首先,我们需要准备一个系统来安装我们的邮件系统。要运行邮件系统,我们比较推荐的是Slackware和Gentoo等比较简单的系统,因为在安装这些软件的时候可以选择不安装系统默认的MTA,比如Redhat就会默认安装SendMail,这样我们就不需要再进行清理工作,可以直接开始安装过程。
其中需要注意的是,在安装系统的时候需要安装完整的开发工具和核心包含的文件,用于后面三个软件包的编译。
在系统能够正常运转之后,我们首先在系统中添加几个QMail会用到的用户。使用如下命令:
mkdir /var/qmail
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
groupadd qmail
useradd -g qmail -d /var/qmail qmailq
useradd -g qmail -d /var/qmail qmailr
useradd -g qmail -d /var/qmail qmails
然后把net-QMail解压缩到/home/pkg,最后再使用如下命令完成QMail MTA的安装:
make
make setup check
接下来对QMail进行配置:./config-fast mail.domain.com
cd /var/qmail/alias
touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
chmod 644 /var/qmail/alias/.qmail*
echo 1 > /var/qmail/control/mfcheck
echo ./Maildir/ >/var/qmail/control/defaultdelivery
第二步,是UCSPI-TCP的安装,几乎和QMail的安装过程一样,命令如下:
make
make setup check
这样就完成了安装。接下来就轮到vPOPMail了!
这个步骤需要解压缩后进行默认配置、编译安装就可以了。
用下面的命令来配置又见,并把用户的邮件存放到/home/vpopmail下面。然后:./configure Cprefix=/home/vpomail
Make install
至此,我们就把这个基本的系统安装完成了。
[Tips:脚本配置]
这里,我们再教你配置一些必要的脚本,以便把刚刚建立好的三个应用程序部分组合起来,并且自动启动QMail。
1、 建立SMTP的转发规则,主要是在/etc/tcp.smtp内写入如下命令::allow
#接受任何Client发出的邮件
#如果要拒绝某些IP所发出的Relay就要修改/etc/tcp.smtp成下面这样
1.2.3.4:allow,RELAYCLIENT=""
127.:allow, RELAYCLIENT=""
#只接受来自1.2.3.4的邮件
2、 下面是把文本格式的规则转换成tcpserver能够识别的cdb格式,命令如下:
/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
3、 再建立下面这个文件,用于启动QMail的MTA和POP3/SMTP服务。文件名为:/etc/rc.d/qmail.sh,代码如下:
/var/qmail/rc &
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
tcpserver -v -x /etc/tcp.smtp.cdb -u UID -g GID 0 smtp /var/qmail/bin/qmail-smtpd &
tcpserver -H -R 0 pop3 /var/qmail/bin/qmail-popup mail.mydomain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
然后我们就可以用/home/vpopmail/vadduser [email protected]增加新的用户,并和普通的邮件系统一样使用了。
[Tips:脚本配置]
当然,我们还可以把用户信息放到数据库里面,这样操作起来更加方便,可以编写php或者perl脚本来直接管理等等。下面就是这些扩展功能包的一个清单:
QMail部分附加软件包
Courier-Imap-4.0.6(包含courier-authlib) ,这个软件包可以让QMail?支持Imap协议。
Autorespond是兼容性良好的自动回复的工具,它与Vdelivermail和QMailadmin都兼容良好。
Ezmlm是一个快速的、独特的邮件列表管理器,它能用QMailadmin进行管理。
QMailadmin使你能在Web浏览器下处理所有的虚拟邮件管理任务,包括增加或删除虚拟域。
Igenus,这是国内开发者开发的基于PHP和Mysql认证的Webmail客户端。鉴于其中文化界面和基于比较容易配置的PHP环境,因此目前正在被大范围的采用。不过在实施的时候需要把vPOPMail配置成基于Mysql的用户认证方式。 结束语
至此,我们已经带大家了解了三种典型的电子邮局特点和主要应用操作。它们的特色可谓是各有千秋。当然能够很好地解决实际需求,才是我们这篇文章的主要目的,所以用户也需要在进行实施之前对自己目前和发展的需求有一个充分的了解。
文章里面提到的各种软件,除了Exchange Server 2003,在www.gotobeijing.net/mail或者各自得官方网站就能够找到体验版的下载,有这样需求的用户,不妨亲自动手试试!
动态域名
由于国内的ISP条件限制,有很多用户其实是没有静态IP地址的,每次连接到ISP都会重新分配不同的IP地址。这样的话就没有办法用普通的方法来把域名对应到IP地址上。所以在很多情况下,我们推荐采用动态域名来解决这种“找不到人”的情况。
国外现在有很多有偿和无偿提供动态域名的提供商,这次我们就介绍国内的一家同类公司花生壳(http://www.oray.net),因为这家公司提供了可以运行于Windows和Linux的中文客户端,对于国内的用户来说,使用起来非常方便。只需要安装一个类似IM的客户端,就能够随时把自己的IP地址对应到免费的动态域名上。