通过以下安装,构建一个完整的mail邮件服务器。它用qmail为MTA,用vpopmail实现pop3服务和虚拟的邮件域。用MySQL(和PHP搭配之最佳组合)来存取用户信息和认证。用qmailadmin来通过web形式进行方便的用户管理,用ezmlm来实现基于MySQL(和PHP搭配之最佳组合)的大容量的邮件列表功能。 通过igenus来实现webmail的功能。
1.2、主机系统
我用的是redhat8.0的系统,在一台康柏的pc server上作的。安装的时候,选择了custom模式。其他系统我没有做过,应该是可以支持的,具体的可以看相应的软件包中的README文件,都对所支持的主机系统做了详细说明。如果有时间,我会在solaris for spare上安装一下。
1.3、 所用软件包
以下软件的软件,由于我用过iceblood的软件包,其中关于qmailadmin汉化的文件—en-us取自于他的qmail-setup.1.53.tar.gz。要是用它的包中别的文件,一定要仔细察看配置文件,不少默认的安装路就都被改过。建议大家去相关网站去找,我在上一章都做了介绍。MySQL(和PHP搭配之最佳组合)我用的是系统的rpm包安装的,也可自己用源代码编译。
httpd-2.0.40.tar.gz
php4-200303121030.tar.gz
qmail-1.03.tar.gz
qmail-103.patch
ucspi-tcp-0.88.tar.gz
ezmlm-0.53.tar.gz
ezmlm-idx.0.40.tar.gz
autorespond-2.0.0.tar.gz
vpopmail-5.2.tar.gz
qmailadmin-0.80.tar.gz
igenus_2_20030311.tgz
qmail-setup.1.53.tar.gz中的en-us ---qmailadmin汉化文件
把以上文件包都上传到/home/software目录下
1.4、安装前系统设定
MySQL(和PHP搭配之最佳组合)管理用户名:root 口令:MySQL(和PHP搭配之最佳组合)2003
qmail安装设置的默认域:anti-spam.org.cn
vpopmail安装设置的默认域 管理口令:12345
ezmlm的MySQL(和PHP搭配之最佳组合)管理用户:ezmlm 口令:ezmlm 数据库名:ezmlm
1.5、装MySQL(和PHP搭配之最佳组合)
在第二张盘上运行:
# rpm -ivh MySQL(和PHP搭配之最佳组合)*
启动MySQL(和PHP搭配之最佳组合) server:
# /etc/rc.d/init.d/MySQL(和PHP搭配之最佳组合)d start
设置MySQL(和PHP搭配之最佳组合) root口令:
# MySQL(和PHP搭配之最佳组合)admin -u root -p password MySQL(和PHP搭配之最佳组合)2003
Enter passwod:(直接回车)
(注:我安装系统的时候,就选择了安装MySQL(和PHP搭配之最佳组合)的所有的包,这样就不会有再安装MySQL(和PHP搭配之最佳组合)时出现连带关系。有连带关系时,可以在x-windows模式下安装,系统自动就可以解决,command模式的rpm参数我忘了)
1.6、 apache(Unix平台最流行的WEB服务器平台)
# cd /home/software/
# tar -zxvf httpd-2.0.40.tar.gz
# cd httpd-2.0.40
# ./configure --prefix=/var/www --enable-modules=so
# make
# make install
1.7、安装php
# cd /home/software
# tar -zxvf php4-200303121030.tar.gz
# cd php4-200303121030
# ./configure --with-MySQL(和PHP搭配之最佳组合) --with-apxs2=/var/www/bin/apxs
# make
# make install
# cp php.ini-dist /usr/local/lib/php.ini
1.8、装qmail-1.03(带认证功能)
添加用户和组:
# 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
# mkdir -p /var/qmail
# cd /home/software
# tar xzf qmail-1.03.tar.gz
# patch -p0 < qmail-103.patch
# cd qmail-1.03
# make setup check
# ./config-fast anti-spam.org.cn
# cd /var/qmail/alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# chmod 644 /var/qmail/alias/.qmail*
# cp /var/qmail/boot/home /var/qmail/rc
# chmod 755 /var/qmail/rc
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail)
# vi /var/qmail/rc
修改其中./Mailbox为./Maildir/
# mkdir /etc/qmail
# touch /etc/qmail/start
# echo "csh -cf ‘/var/qmail/rc %26amp;‘">/etc/qmail/start
# echo "/etc/qmail/smtp.sh">>/etc/qmail/start
1.8、 安装ucspi-tcp
# cd /home/software
# tar zxvf ucspi-tcp-0.88.tar.gz
# cd ucspi-tcp-0.88
# make
# make setup check
# touch /etc/qmail/smtp.sh
# echo "/usr/local/bin/tcpserver -H -R –l anti-spam.org.cn -t 1 -c 100 -v -p -x/etc/qmail/tcp.smtp.cdb -u 502 -g 501 0 smtp /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true | /var/qmail/bin/splogger %26amp;" > /etc/qmail/smtp.sh
(注:502 and 501换成系统上的qmaild与nofiles的uid and gid的值。)
# chmod 755 /etc/qmail/smtp.sh
# touch /etc/qmail/tcp.smtp
# echo "127.0.0.1:allow,RELAYCLIENT="\"\" > /etc/qmail/tcp.smtp
echo ":allow" > /etc/qmail/tcp.smtp
# /usr/local/bin/tcprules /etc/qmail/tcp.smtp.cdb /etc/qmail/tcp.smtp.tmp < /etc/qmail/tcp.smtp
# echo “/etc/qmail/start” >> /etc/rc.d/rc.locad
1.9、 安装vpopmail
# groupadd vchkpw
# useradd -g vchkpw -d /home/vpopmail vpopmail
# echo "/etc/qmail/start">>/etc/rc.d/rc.local
[说明:4.9.10也可通过smtp认证,4.10.26认证失败并有一系列的问题,不建议使用。
如不与MySQL(和PHP搭配之最佳组合)数据库集成也可,不要修改vMySQL(和PHP搭配之最佳组合).h文件,并去掉./configure中的相关选项
# tar vpopmail-5.2.tar.gz
# cd vpopmail-5.2
# vi vMySQL(和PHP搭配之最佳组合).h
根据你的MySQL(和PHP搭配之最佳组合)的设置,更改下面的配置
#define MySQL(和PHP搭配之最佳组合)_SERVER "localhost"
#define MySQL(和PHP搭配之最佳组合)_USER "root"
#define MySQL(和PHP搭配之最佳组合)_PASSWD "MySQL(和PHP搭配之最佳组合)2003"
#define MySQL(和PHP搭配之最佳组合)_SERVER "localhost"
#define MySQL(和PHP搭配之最佳组合)_USER "root"
#define MySQL(和PHP搭配之最佳组合)_PASSWD "MySQL(和PHP搭配之最佳组合)2003"
# ./configure --enable-default-domain=chinaunix.net
--enable-passwd=n \
--enable-tcprules-prog=/usr/local/bin/tcprules \
--enable-ip-alias-dmains=n \
--enable-defaultquota=n \
--enable-sqwebmail-pass=y \
--enable-roaming-users=y \
--enable-MySQL(和PHP搭配之最佳组合)=y \
--enable-indir=/usr/include/MySQL(和PHP搭配之最佳组合) \
--enable-libdir=/usr/lib/MySQL(和PHP搭配之最佳组合)
# make
# make install-strip
# chmod 6755 /home/vpopmail/bin/vchkpw
# echo " tcpserver -c 100 -v -l anti-spam.org.cn -U -H -R 0 pop3 /var/qmail/bin/qmail-popup anti-spam.org.cn /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>%26amp;1 | /var/qmail/bin/splogger %26amp;" > /etc/qmail/pop.sh
# chmod 755 /etc/qmail/pop.sh
# echo "/etc/qmail/pop.sh">>/etc/qmail/start
添加域:
# /home/vpopmail/bin/vadddomain anti-spam.org.cn
(回车:输入两遍密码)
添加用户:
# /home/vpopmail/vadduser peng@anti-spam.org.cn
1.10、 zmlm and ezmlm-idx with MySQL(和PHP搭配之最佳组合) support!
注意:为了启用maillist的MySQL(和PHP搭配之最佳组合)支持,你必须首先:
建立MySQL(和PHP搭配之最佳组合)管理用户:(Ex:user:ezmlm,pass:ezmlm)
# MySQL(和PHP搭配之最佳组合) -u root –pMySQL(和PHP搭配之最佳组合)2003
>use MySQL(和PHP搭配之最佳组合);
>insert into user values(‘localhost‘,‘ezmlm‘,‘‘,‘y‘,‘y‘,‘y‘,‘y‘,‘y‘,‘y‘,‘y‘,‘y‘,‘y‘,‘y‘,‘y‘,‘y‘,‘y‘, ‘y‘);
>update user set password=password(‘ezmlm‘) where user=‘ezmlm‘;
>FLUSH PRIVILEGES;
>exit;
建库:(Ex:database:ezmlm)
# MySQL(和PHP搭配之最佳组合)admin -u root -pXXXXX create ezmlm
ezmlm-idx包含有对ezmlm的修正和补充,他们是一个整体。
#cd /home/software
# tar -zxvf ezmlm-0.53.tar.gz
# tar -zxvf ezmlm-idx.0.40.tar.gz
# mv ezmlm-idx-0.40/* ezmlm-0.53/
# cd ezmlm-0.53
# patch < idx.patch
# make MySQL(和PHP搭配之最佳组合) #MySQL(和PHP搭配之最佳组合) 支持
# make clean
# make man
# make ch_GB #汉字GB2312支持
# make setup
在你建立一个基于MySQL(和PHP搭配之最佳组合)的maillist之前,你必须保证ezmlm库中已存在一个对应的表:
Ex:你想建一个基于MySQL(和PHP搭配之最佳组合)的maillist:testlist
# /usr/local/bin/ezmlm/ezmlm-mktab -d testlist | MySQL(和PHP搭配之最佳组合) -uezmlm -pezmlm -f ezmlm
这样就在ezmlm库中为testlist建立了一系列相关表格:
+------------------------+
| Tables |
+------------------------+
| testlist |
| testlist_allow |
| testlist_allow_slog |
| testlist_cookie |
| testlist_deny |
| testlist_deny_slog |
| testlist_digest |
| testlist_digest_cookie |
| testlist_digest_mlog |
| testlist_digest_slog |
| testlist_mlog |
| testlist_mod |
| testlist_mod_slog |
| testlist_slog |
+------------------------+
你可以用一下命令察看!
# MySQL(和PHP搭配之最佳组合)show -u root -pXXXX ezmlm
1.11、安装autorespond
(对于qmailadmin-0.74版以上,必须使用2.0以上的版本)
# tar zxvf autorespond-2.0.0.tar.gz
# cd autorespond-2.0.0
# make
# make install
# cp autorespond /usr/local/bin
1.12、 安装igenus
# cd /home/software
# cp igenus_2_20030311.tgz /var/www
# cd /var/www
# mkdir temp
# chown vpopmail.vchkpw temp
# tar zxvf igenus_2_20030311.tgz
修改config/config_inc.conf文件。config_inc.conf是igenus的配置文件,必须正确设置,具体设置如下:
# vi /var/www/igenus
$CFG_BASEPATH = "/var/www/igenus";
$ CFG_BASEPATH -----是iGNEUS webmail安装在系统的路径。
$CFG_MySQL(和PHP搭配之最佳组合)_HOST = ‘localhost‘;
$CFG_MySQL(和PHP搭配之最佳组合)_HOST -----是MySQL(和PHP搭配之最佳组合)服务器的地址。
$CFG_MySQL(和PHP搭配之最佳组合)_USER = ‘root‘;
$CFG_MySQL(和PHP搭配之最佳组合)_USER -----是MySQL(和PHP搭配之最佳组合)服务器的用户名。
$CFG_MySQL(和PHP搭配之最佳组合)_PASS = ‘MySQL(和PHP搭配之最佳组合)2003‘;
$CFG_MySQL(和PHP搭配之最佳组合)_PASS -----是MySQL(和PHP搭配之最佳组合)服务器的密码,根据你的实际填写
$CFG_LANGUAGE = gb;
$CFG_LANGUAGE-----是系统默认语言,可有中英日可选。
$CFG_GMT = +8; // GMT time local
$CFG_GMT----是时区设置,中国选+8。
$CFG_TEMP = $CFG_BASEPATH."/../temp";
$CFG_TEMP----临时文件的位置。
3、修改默认登录域的设置,编辑login.php,查找以下字符,可设置你默认的邮件主机地址,可以设置多个。当然了,不改也可以的,略过这一步。
# vi /var/www/igenus/login.php
SIZE="10" STYLE="font-family: Tahoma">
@
----删除@后面的句子,改变成以下:
User vpopmail
Group vchkpw
#vi /etc/rc.d/rc.local
添加:
/var/www/bin/apache(Unix平台最流行的WEB服务器平台)ctl start
(注:使它开机自动启动。)
更改php的设置:
# vi /usr/local/lib/php.ini
register_globals =off 更改为:register_globals = on
发送附件大小设置:
upload_max_filesize = 10M ---默认是2M
vi igenus/language/gb_inc.php文件如下:
$LANG_SENDFORM_ATTACH_MESG = "请注意文件的大小不要超过1MB,否则系统无法正确接收;如果附件超过1MB,请通过Foxmail或Outlook发信!";
//$LANG_SENDFORM_ATTACH_MESG = "请注意文件的大小不要超过10MB,否则系统无法正确接收!";
更改MySQL(和PHP搭配之最佳组合)数据库:
# MySQL(和PHP搭配之最佳组合) -uroot -pMySQL(和PHP搭配之最佳组合)2003
在MySQL(和PHP搭配之最佳组合)中创建address表,具体表结构如下:
# use vpopmail
# create table address
(
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) unsigned NOT NULL default ‘0‘,
name varchar(64) NOT NULL default ‘‘ ,
email varchar(128) NOT NULL default ‘‘,
UNIQUE KEY id (id),
KEY pw_id (pw_id)
);
修改原来的vpopmail表,方法如下:
use vpopmail;
alter table vpopmail drop Prima(最完善的虚拟主机管理系统)ry key;
alter table vpopmail add column pw_id int(5) NOT NULL Prima(最完善的虚拟主机管理系统)ry key auto_increment;
(注:添加address table,是因为要使用igenus中的个人通讯录,添加pw_id是因为igenus用它来标识用户的唯一性的,但vpopmail用的是pw_uid)
1.13、 安装qmailadmin-0.80
在安装之前先确认:
你是否已经安装了vpopmail,并使用vchkpw 。
是否已经安装ezmlm。
是否已经安装autorespond。
确认以上的工作已完成,可以开始安装qmailadmin。
# cd /home/software
# tar zxvf qmail-setup.1.5.3.tar.gz
# tar xvz(parallels的虚拟机平台)f qmailadmin-1.0.6.tar.gz
# cd qmailadmin-1.0.6
# cp iceblood/en-us qmailadmin-1.0.6/html/en
# cp iceblood/en-us qmailadmin-1.0.6/html/en-us
(注:以上两步,是为了汉化qmailadmin,用iceblood的qmail-setup的汉化文件。)
# cd qmailadmin-1.0.6
#./configure --enable-cgibindir=/var/www/cig-bin --enable-htmldir=/var/www/igenus
# make
# make install-strip
1.14、测试
现在,重起你主机系统,你可以设置一下你的outlook或者foxmail.接受邮件了。也可以通过webmail访问你的mail系统了。
http://mail.anti-spam.org.cn 通过webmail接受你的邮件信息
http://mail.anti-spam.org.cn/cgi-bin/qmailadmin 通过web方式管理和添加用户了
1.15 小结
好了,到这里,安装部分就算完成了,但是,如果你以为到这就大功告成了,那就大错特错了,因为痛苦刚刚开始。。。
真正使用中的问题,才是问题啊。
. TAG: EZMLM IGENUS QMAILADMIN VPOPMAIL 邮局