会员控制台 会员登陆 会员注册 最后更新 高级搜索 会员投稿 退出登陆
设为首页
收藏本站
留言给我
  首页 | 操作系统类 | 程序设计类 | 数据库类 | 应用服务类 | 网络及硬件类 | 其他技术 | GBunix论坛
操作系统类
程序设计类
数据库类
应用服务类
网络及硬件类
其他技术
Unix中文 / 应用服务类 / MailServer / Qmail+Vpopmail+Sqwebmail的安装步骤
Qmail+Vpopmail+Sqwebmail的安装步骤
2004-07-29          点击:
Qmail+Vpopmail+Sqwebmail的安装步骤
一、安装环境

安装平台:RedHat Linux
安装的机器: mail.mydomain.com

软件包:
qmail-1.03 qmail基本系统
ucspi-tcp-0.88 tcpsever等服务程序
daemontools-0.70 监视工具
checkpassword-0.81 pop3验证用户的程序
ezmlm-0.53 邮件列表管理
vpopmail-4.9.6-1 虚拟域用户pop3支持
qmailadmin-0.35 虚拟域web管理
autorespond-1.0.0 自动回复程序
sqwebmail-1.2.0 webmail
vqsignup-0.4 web方式用户注册

软件来源:
http://www.qmail.org
http://www.inter7.com/qmail

注意:每个包安装前务必先仔细阅读INSTALL和FAQ,很多问题在FAQ都有解决方法。

二、安装步骤

1、安装qmail

1)创建qmail安装目录

#mkdir /var/qmail

2)添加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

3)解压、解包和编译

(假设这些包都下载到/var/tmp目录下)
#cd /var/tmp
#tar xzvf qmail-1.03.tar.gz
#cd qmail-1.03


进入qmail目录后,仔细阅读一下README和INSTALL文件.然后开始编译qmail

#make setup check

4)配置

#./config

5)建立系统别名

#(cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root)
#chmod 644 ~alias/.qmail*


可以在这些别名文件中指定管理用户来接受这些系统邮件,如

#echo 'admin' > ~alias/.qmail*

6)建立启动文件和用户的maildir

#cp /var/qmail/boot/home /var/qmail/rc 
#chmod 755 /var/qmail/rc


编辑 /var/qmail/rc
修改其中./Mailbox成为./Maildir以支持maildir的pop收信方式,如下:

   # !/bin/sh
   # Using splogger to send the log through syslog.
   # Using qmail-local to deliver messages to ~/Maildir by default.
   exec env - PATH="/var/qmail/bin:$PATH"\
   qmail-start ./Maildir splogger qmail


其中splogger qmail指令是用来将日志文件记录在/中。
建立maildir的方法:

   $/var/qmail/bin/maildirmake /etc/skel/Maildir
   $echo ./Maildir/ > ~/.qmail


注意Maildir必须为该使用者所有,可以chown变更,并以chmod 700 Maildir设定权限。

2、安装ucspi-tcp-0.88

  #tar zxvf ucspi-tcp-0.88.tar.gz
  #cd ucspi-tcp-0.88
  #make
  #make setup check

  执行文件将被安装在/usr/local/bin中。

3、安装checkpassword

  #tar zxvf checkpassword-0.81.tar.gz
  #cd checkpassword-0.81
  #make
  #make setup check
  #chmod og-rx /bin/checkpassword


执行文件checkpassword将被安装在/bin中。
如果不对/etc/passwd中的用户开放mail,则不需要装checkpassword,而只要装vpopmail就行了。

4、安裝daemontools

  #tar zxvf daemontools-0.70.tar.gz
  #cd daemontools-0.70
  #make
  #make setup check


执行文件将安装于/usr/local/bin中。
安装本工具后可以用

#mkdir /var/run/qmail
#supervise /var/run/qmail /var/qmail/rc


来启动qmail,还可以用svc来关闭或重启qmail,用svstat监视qmail运行情况。(参见qmail FAQ)

5、安装vpopmail

#groupadd vchkpw
#useradd -g vchkpw vpopmail
#mkdir ~vpopmail/etc
#echo ":allow" > ~vpopmail/etc/tcp.smtp
#tar zvfz vpopmail-4.9.6-1.tar.gz
#cd vpopmail-4.9.6-1
#./configure --enable-roaming-users=y --enable-default-domain=mydomain.com --enable-passwd=n
(注:--enable-roaming-users=y表示允许漫游的用户使用该邮件系统)
#make
#make install-strip
#crontab -e
(编辑cron文件,如下)
40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null

#cd /home/vpopmail/bin
#./vadddomain mydomain.com mydomain


添加mydomain.com到/var/qmail/control/rcpthosts中。
此时该域的postmaster的密码为mydomain,可以使用下面的命令

./vadddomain mydomain.com

执行后会提示输入postmaster的密码

6、停止sendmail 服务
 
#killall -9 sendmail (Linux)

接着以qmail的sendmail libraby取代原有 sendmail

#mv /usr/lib/sendmail /usr/lib/sendmail.old
#mv /usr/sbin/sendmail /usr/sbin/sendmail.old
#ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
#ln -s /var/qmail/sbin/sendmail /usr/sbin/sendmail


移除sendmail启动程序,以 Linux 为例:

移除inetd.conf中的sendmail之设定,以及/etc/rc.d/init.d下的sendmail启动文件。(Linux)

7、启动qmail SMTP ,POP3 daemon系统服务

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及127.*之外的所有地址,都将被拒绝转送信件。

2)转换tcp.smtp成为cdb格式

   #/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

注意:若对tcp.smtp有任何变更,都必須经过tcprules转换成为cdb文件才会生效。

另外,tcp.smtp 若为空白,则表示拒绝所有的转送,因为预设的规则为deny。

至此,转送规则已建立,稍后将依此规则启动qmail-smtpd。

3)设定SMTP及POP3 daemon的启动

移除inetd.conf中有关smtp及pop3的设定(加上#号)

编辑/etc/services,改为以下设定:

    smtp 25/tcp mail
    # pop-3 110/tcp #pop version 3
    # pop-3 110/udp
    pop3 110/tcp
    pop3 110/udp

   启动 SMTP:

    /usr/local/bin/tcpserver -v -x /etc/tcp.smtp.cdb \
    -u UID -g GID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 \
    | /var/qmail/bin/splogger smtpd 3 &


其中UID和GID为前述新增 qmail系统账号qmaild的User ID,以及nofiles的group ID。

/var/qmail/bin/splogger那一行会将log文件写在/var/log/maillog中。

启动 POP3:

编辑启动档加入以下设定:

tcpserver -H -R 0 pop3 \
/var/qmail/bin/qmail-popup mail.mydomain.com \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &


在/etc/rc.d/init.d下建立文件qmail,内容如下:

-------------------------------------------
#! /bin/sh

case "$1" in
start)
echo -n "start qmail:"

/var/qmail/rc &
echo "."

echo -n "start smtp service:"
  /usr/local/bin/tcpserver -v -x /etc/tcp.smtp.cdb \
     -u UID -g GID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 \
    | /var/qmail/bin/splogger smtpd 3 &
echo "."

echo -n "start pop3 service:"
    tcpserver -H -R 0 pop3 \
/var/qmail/bin/qmail-popup mail.mydomain.com \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
echo "."
;;
stop)
echo -n "stop qmail:"
echo "."
;;
*)
exit 1
;;
esac

exit 0

-----------------------------------------------------

#cd ../rc3.d
#ln -s ../init.d/qmail S98qmail


(注:这里的启动文件没有写全)

8、qmailadmin——WEB方式管理qmail

1)ezmlm的安装

$make
$make man
#make setup


2)autorespond的安装

gcc -Wall -o autorespond autorespond.c
cp autorespond /usr/local/bin/autorespond


3)qmailAdmin的安装

在安装前首先要考虑满足以下几项要求:

a.是否拥有一个vpopmail用户vchkpw
b.cgi-bin目录的所在位置
c.ezmlm目录的所在位置
d.autorespond目录的所在位置

如果能够达到以上要求,可以继续安装

#./configure
#make
#make install-strip

检测安装是否正确:浏览器中打开路径http://mail.mydomain.com/cgi-bin/qmailadmin,看根据前面设置的用户和密码是否能够成功登录进去。

9、SqWebmail——一种Webmail解决方案

1)安装SqWebmail

#tar xvfz sqwebmail-1.2.0.tar.gz
#cd sqwebmail-1.2.0
#./configure --without-authpam --without-authuserdb --enable-webpass=no --without-authpwd --without-authshadow
#make configure-check
#make (当我make的时候报错找不到db.h,cp /usr/include/db1/db.h /usr/include/db.h)
#make check
#make install-strip
#make install-configure


检测安装是否正确:浏览器中打开路径http://mail.mydomain.com/cgi-bin/sqwebmail

2)安装vqsignup

#tar xvfz vqsignup-0.4.tar.gz
#cd vqsignup-4.0


按照INSTALL安装(?)

安装这个软件包可能比较麻烦,需要一些耐心。

a. 修改Makefile文件:
FLAGS=-I/home/vpopmail/include
修改-I/home/vpopmail/include指到真实的vpopmail/include目录

修改下面的这行
$(CC) $(FLAGS) -o $(BIN) $(OBJS) -L/home/vpopmail/lib -lvpopmail -lcrypt
修改 -L/home/vpopmail/lib 为真实的vpopmail lib的目录

b. 编译
#make

c. 安装
拷贝signup.cgi和signup.conf文件到cgi-bin目录下
切换目录到cgi-bin目录下

#chown vpopmail signup.cgi
#chgrp vchkpw signup.cgi
#chmod ug+s signup.cgi
#chmod ugo+r signup.conf


拷贝vqsignup_html目录到cgi-bin目录下,确信对所有用户可读
拷贝vqsignup.html文件到DocumentRoot目录下,确信能够被访问。

编辑cgi-bin目录下的vqsignup.conf文件
修改"add_domain"的所有行,加上你的真实的域,把其他的行删除掉

更改vqsignup_text/*.html文件,使包含"result_*"的行的路径指到正确的全路经。

修改vqsignup_text目录下所有的文件,使它们只包含你想支持的域,你也可以定制这些页面,使它们更加好看些。

修改DocumentRoot目录下vqsignup.html文件,使它只包含你想支持的域,你也可以定制这个页面,使它更加好看些。

d. 测试
用你的浏览器访问http://your web server/your sub dir/vqsignup.htm, 试着注册新用户,如果成功的话,那么就恭喜你了。如果有错误,请返回安装步骤仔细查看文件的权限和vqsignup.html里的值是否正确。

三、參考文献

Adam McKenna所编写qmail-HOWTO (http://www.flounder.net/qmail/qmail-howto.html)
qmail FQA (內含于qmail 1.03 Source Code)
http://www.qmail.org

了解更多详情,参与讨论,请进入GBUNIX论坛

http://www.gbunix.com/bbs/index.php
责任编辑: trotter

相关文章
如何利用procmail来对付垃圾邮件 - 12-30 11:07 pm - 点击: 513
Procmail过滤邮件之我所见 - 07-29 09:10 pm - 点击: 400

发表评论 查看评论 加入收藏 Email给朋友 打印本文
给该文章评分
1 2 3 4 5 6 7 8 9 10
平均得分 0, 共 0 人评分
1 2 3 4 5 6 7 8 9 10
发表评论
标题:
内容:
声明:本站资讯均来自互联网,所有文章版权归原作者和出版者所有,如涉及版权问题,请来信告知!
Copyright © 2002-2004 GBunix.com. All rights reserved.