FreeBSD4.7+Qmail+Mysql+Vpopmail+QmailAdmin+Sqwebmail
本人刚开始考虑使用的是postfix+mysql+sasl+courier-map+sqwebmail(详见我发的《中小规模 POSTFIX邮件系统》),但是在配置SMTP认证方面没有成功,而且公司的邮件系统又要求使用邮件列表功能,没有找到解决方案,公司的领导又拿着鞭子在后面催赶,所以就使用Qmail了,因为Qmail的资料和软件比较丰富,而且高人也比较多,有问题也有高人帮忙,所以就使用了它。网上Qmail安装设置的资料很多,我也是参考这些资料完成各项设置的,我写这篇档案的目的是为了避免我忘记设置过程(年纪轻轻的就有了健忘症,痛苦……..),再者我发到网上也让各位高人看看还有什么地方存在问题,那些需要改进,废话少说,言归正传!
一. 本文档所需软件
1. ucspi-tcp-0.88.tar.gz
http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
2. checkpassword-0.90.tar.gz (可选)
http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz
3. cmd5checkpw-0.22.tar.gz http://members.elysium.pl/brush/cmd5checkpw/dist/cmd5checkpw-0.22.tar.gz
4. qmail-1.03.tar.gz
http://cr.yp.to/software/qmail-1.03.tar.gz
5. qmail-1.03.patch (Qmail补丁,这个补丁主要是处理有些DNS响应不完全遵从RFC标准,返回大于512字节的DNS应答包时可能出现的问题。)
http://www.ckdhr.com/ckd/qmail-103.patch
6. qmail-smtpd-auth-0.31.tar.gz(Qmail补丁) http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.30.tar.gz
7. vpopmail-5.3.16.tar.gz
http://www.inter7.com/devel/vpopmail-5.3.16.tar.gz
8. Vpopmail汉化文件
http://www.cw-isquare.com/en-us
9. autorespond.tar.gz
http://www.netmeridian.com/e-huss/autorespond.tar.gz
10. ezmlm-0.53.tar.gz
http://cr.yp.to/software/ezmlm-0.53.tar.gz
11. sqwebmail-3.5.0-CN.tar.gz sqwbmail中文软件包
http://www.cw-isquare.com/ sqwebmail-3.5.0-CN.tar.gz
12. Qmail-smtpd.c
http://www.cw-isquare.com/qmail-smtpd.c
13. Qmail-smtpd.path (修正Qmail auth smtp中电子邮件地址任意的patch)
http://www.cw-isquare.com/qmail-smtpd.patch.txt
14. Mysql
我是用/usr/ports进行安装的mysql
注意:
1. 所有程序下载后放在/down目录下。
2. 在安装FreeBSD4.7时请把/home和/var尽量分的大一些,因为/home目录是作为所有用户的邮件存放目录,/var是日志存放目录。
3. 一下所有操作都是在root权限下进行的,因为root用户对系统拥有全部的权限,所以操作时请进了小心,不要由于误操作带来不必要的麻烦。
二. DNS设定
我自己没有DNS服务器,负责解析的是我们母公司的DNS服务器,我使用nslooks –q=mx mail.localhost.com命令可以查看到已经绑定到我们公司的IP地址上。
注:mail.localhost.com为我们公司域名,以下相同。
三. Mysql的安装
#cd /usr/ports/database/mysql323-server
#make install
#cd work/mysql-3.23.52
#scripts/mysql_install_db
#cp support-files/my-medium.cnf /etc/my.cnf
#/usr/local/bin/safe_mysqld & 启动mysql服务
#echo “/usr/local/bin/safe_mysqld &” >> /etc/rc.local 使mysql能随系统启动时一起启动
#/usr/local/bin/mysqladmin –u root –password ‘123456’ 修改mysql用户root密码
添加与root用户相同权限的用户vpopmail,在安装vpopmail时要用到
#cd /usr/local/bin
#./mysql -u root –p
#Mysql>use mysql;
#Mysql>grant select,insert,update,delete,create,drop on vpopmail.* to vpopmail@localhost identified by '12345678';
或者安装webmin对数据库进行管理,如果使用以上命令不能使vpopmail用户拥有所有权限,请到webmin的mysql项进行修改。
四. 安装TCPSERVER
1. 安装ucspi-tcp
#cd /down
#tar zxvf ucspi-tcp-0.88.tar.gz
#cd ucspi-tcp-0.88
#make setup check
2. 生成tcp.smtp.cdb
#cd /etc
#touch tcp.smtp
#ee tcp.smtp 加入一下内容
127.0.0.1:allow,RELAYCLIENT=""
#cd /usr/local/bin
#./tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
五. 安装cmd5checkpw
#cd /down
#mkdir /usr/man
#mkdir /usr/man/man8
#tar zxvf cmd5checkpw-0.22.tar.gz
#cd cmd5chedkpw-0.22
#make
#make install
如果你不需要对/etc/passwd中的用户开放mail,则不需要安装checkpassword,因为我不需要,所以我没有安装。如果你要使用参考一下方法:
#cd /down
# tar zxvf checkpassword-0.90.tar.gz
# cd checkpassword-0.90
# make setup check
六. 安装Qmail
1. 建立Qmail目录
#mkdir /var/qmail
#mkdir /var/qmail/alias
2. 添加组和用户
#pw groupadd nofiles
#pw groupadd qmail
#pw useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent
#pw useradd qmaild -g nofiles -d /var/qmail -s /nonexistent
#pw useradd qmaill -g nofiles -d /var/qmail -s /nonexistent
#pw useradd qmailp -g nofiles -d /var/qmail -s /nonexistent
#pw useradd qmailq -g qmail -d /var/qmail -s /nonexistent
#pw useradd qmailr -g qmail -d /var/qmail -s /nonexistent
#pw useradd qmails -g qmail -d /var/qmail -s /nonexistent
在添加一个系统用户admin作为邮件管理用户
#pw useradd admin –g wheel
3. 给Qmail打补丁
#cd /down
#tar zxvf qmail-1.03.tar.gz
#patch –d ./qmail-1.03 < qmail-103.patch DNS补丁
#tar zxvf qmail-smtpd-auth-0.30.tar.gz
#cd qmail-smtpd-auth-1.30
#cp base* README.auth ../qmail-1.03
#patch -d ../qmail-1.03 < auth.patch
4. 编译Qmail
#make setup check
5. ./config-fast mail.localhost.com
6. 修正SMTP认证信息任意输入和任意更改电子邮件发件人地址的补丁
#cd /down
#cp qmail-smtpd.c ./qmail-1.03
#cp qmail-smtpd.patch.txt ./qmail-1.03
#cd qmail-1.03
#patch < qmail-smtpd.pathch.txt
#make qmail-smtpd
#cp qmail-smtpd /var/qmail/bin
7. 设置投递方式
#cp /var/qmail/boot/home /var/qmail/rc
#ee /var/qmail/rc 修改以下内容
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail
8. 添加别名用户
#touch /var/qmail/alias/.qmail-root
#touch /var/qmail/alias/.qmail-postmaster
#touch /var/qmail/alias/.qmail-mailer-daemon
#echo postmaster /var/qmail/control/bouncefrom
注意:/var/qmail/control/locals中必须有缺省域名,否则投递失败的邮件将不知锁踪。
9. 停止Sendmail服务
#chmod 0 /usr/sbin/sendmail
#mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
#cp /var/qmail/bin/sendmail /usr/sbin/sendmail
#vi /etc/rc.conf
#ee /etc/rc.conf 修改如下选项
sendmail_enable="NO"
七. 安装vpopmail
1. 建立目录
#mkdir /home/vpopmail
#mkdir /home/vpopmail/etc
2. 建立组及用户
#pw groupadd vchkpw
#pw useradd vpopmail –g vchkpw
3. 安装vpopmail
#tar zxvf-5.3.12.tar.gz
#ee vmysql.h 修改一下内容
#define MYSQL_UPDATE_SERVER "localhost" (mysql服务器名)
#define MYSQL_UPDATE_USER "vpopmail" (用户名)
#define MYSQL_UPDATE_PASSWD "