作者: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 1 怎么回事???? 我的也是这样,我是在红帽9。0下的编译 |
gadfly 回复于:2003-05-20 12:47:36 |
参看faq |
shiv 回复于:2003-09-09 12:39:49 |
哪有faq?
我的也有问题! [root@test40 qmail-1.03]# make check setup ./compile qmail-local.c ./compile: line 3: exec: cc: not found make: *** [qmail-local.o] Error 127 [root@test40 qmail-1.03]# make check setupcd .. ./compile qmail-local.c ./compile: line 3: exec: cc: not found make: *** [qmail-local.o] Error 127 |
litchidong 回复于:2004-03-17 16:33:36 |
Try adding :
#include <errno.h> as the first line of error.h in the src directory. |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/
领测软件测试网最新更新
关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073