作者:peng
论坛ID:peng www.chinaunix.net
QQ: 螃蟹 16360544
1.1目的。
本文的目的,是用自由软件在一个Linux平台上安装一套功能完整的邮件系统,和如何来管理他。这里我以qmail作为smtp服务器,vpopmail做pop3服务器和实现虚拟域、用mysql数据库来进行用户验证,用qmailadmin来实现图形化的用户管理。用ezmlm来提供对邮件列表的支持。使用igenus来提供一个友善的webmail界面。
1.2 qmail管理与维护章节
(一)Qmail系统的介绍和准备工作。
(二)qmail+vpopmail+mysql+qmailadmin+ezmlm+igenus的安装
(三)qmail的工作原理和配置文件的设置。
(四)ucspi-tcp的原理和设置。
(五)vpopmail和qmailadmin对用户的管理。
(六)qmail的日志分析和管理。
(七)ezmlm实现邮件列表的应用和管理。
(八)系统的备份和FAQ。
1.2安装要求
1、请在安装系统前,最好要多看几片他人写的文档。
2、悉了所有Dan Bernstein(qmail的作者)发布的文档; 熟悉www.qmail.org(qmail官方站点)的相关资源,尽量理解Life With qmail。
3、安装软件包前,仔细阅读各自的README AND INSTALL文件,这是最好的安装指南!
1.3感谢
感谢www.chinaunix.net的论坛网友locklzy、wxy、gadfly,尤其感谢gadfly在技术上给的执导和支持。
1.4软件介绍
httpd-2.0.40.tar.g 提供web服务的server。
autorespond.tar.gz 实现e-mail自动回复功能。
ezmlm-0.53.tar.gz 实现qmail邮件列表功能。
ezmlm-idx-0.40.tar.gz ezmlm's的补丁程序,使ezmlm支持qmail。
qmail-1.03.tar.gz Qmail软件包
qmailadmin-0.80.tar.gz qmail的web管理软件。
ucspi-tcp-0.88.tar.gz tcpserver service 程序。
vpopmail-5.2.tar.gz 实现pop3服务和支持虚拟域。
qmail-smtpd.c qmail的补丁程序,实现smtp认证功能。
php4-200303121030.tar.gz 实现apache对php的支持
igenus_2_20030311.tgz 实现webmail的软件包。
Qmail-setup.1.5.3.tar.gz 用其中的qmailadmin汉化部件。
以上软件,可以到各自的网站去获取:
http://www.apache.org/
http://cr.yp.to/qmail.html
http://www.qmail.org/
http://www.inter7.com/vpopmail/
http://cr.yp.to/ezmlm.html
http://www.ezmlm.org/
http://www.inter7.com/qmailadmin look for autoresponder link
http://www.igenus.org
http://down.rree.com/iceblood/qmail_setup-v1.5.3.tar.gz
1.5实现的功能
1、Qmail帐号与系统帐号的分离。
2、SMTP服务的密码验证功能,能有效的防止别人利用自己的服务器发送匿名信。
3、用vpopmail提供pop3服务。
4、实现对虚拟域的支持。
5、实现邮件帐号WEB管理方式。
2、Qmail邮件列表功能。
3、Qmail自动回复功能。
5、邮件的WEB使用方式,如:WEB发邮件,查看邮件。
6、支持qmail的管理脚本,安装后可以运行qmail start|stop|restart来管理qmail。
7、全面支持Mysql数据库,用户信息和邮件列表都通过mysql存储和验证。
8、实现了QmailAdmin和webmail的中文界面。
1.6 系统设置
我用的是redhat8.0的系统,在一台康柏的pc server上作的。安装的时候,选择了custom模式。我安装系统的时候,就选择了安装mysql的所有的包。
1.7 apache
在安装系统时,我没有默认安装apache。我用源代码编译APACHE,是使它打开DSO模块。然后编译PHP,将SO文件安装到你的APACHE的模块目录里,这样也方便以后扩展功能。
1.8 sendmail
在这里,sendmail已没有任何意义了。本文就是想用qmail来替代unix系统传统上的sendmail。这里我们将要删除他:
# rpm –e –nodeps sendmail
1.9 系统分区建议
由于本系统的qmail采用了Maildir格式存储用户的邮件消息。造成大量小文件存在,数量庞大的小文件如果放在 /var 或 /home下,将造成系统性能下降。建议vpopmail单独使用另一块硬盘。还要注意/var/和/home的分区大小。因为/var/要产生大量的日志文件和qmail队列,/home/下用户要保留用户的信件文件。所以规划好硬盘的分区,可以免除以后不必要的麻烦。其实大家可以使用逻辑卷管理磁盘,这样可以动态的更改各分区的大小,是个不错的选择。Linux8安装的时候可以设置。
1.10 dns server设置。
在这里我的域名假设是: chinaunix.net
qmail这台主机名是: mail.chinaunix.net
qmail这台主机的ip地址是: 192.168.1.2
我的mail用户的格式是: peng@chinaunix.net
虚拟域名1是: chinaunix.com
虚拟域名2是: fanqiang.com
以上的域名,他们各自的解析主机所对应的zone文件设置是:
mail IN A 192.168.1.2
@ IN MX 10 mail
1.11 关于本文挡的声明
这份文档,是我参考了大量的网友的文章和书籍而写成的。自己经过反复安装和测试,均安装成功。但由于本人水平有限,文档难免有一些遗漏。如果你在安装的时候发现有什么地方有错误的话,请去www.chinaunix.net 的mail论坛讨论,我尽快回复的。
对于这片文档,网友可以任意转贴。但出于对作者的尊重,转贴时请注明作者姓名
wolf1980 回复于:2003-05-13 08:06:26我是个linux一直想在RedHat8.0上做qmail,一直做不好这回会有参考
的资料!!!
lyking 回复于:2003-05-13 12:50:36太好了,谢谢。
hoohoo 回复于:2003-05-13 20:29:39我在编译时出错
auto-str.c: In function `main':
auto-str.c:17: warning: return type of `main' is not `int'
./load auto-str substdio.a error.a str.a
substdio.a(substdo.o)(.text+0x43): In function `allwrite':
: undefined reference to `errno'
collect2: ld returned 1 exit status
make: *** [auto-str] Error 1
怎么回事????
gadfly 回复于:2003-05-13 21:59:53参看
http://www.chinaunix.net/forum/viewtopic.php?t=65573
hss202 回复于:2003-05-20 00:28:58我在编译时出错
auto-str.c: In function `main':
auto-str.c:17: warning: return type of `main' is not `int'
./load auto-str substdio.a error.a str.a
substdio.a(substdo.o)(.text+0x43): In function `allwrite':
: undefined reference to `errno'
collect2: ld returned 1 exit status
make: *** [auto-str] Error