• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

qmail+vpopmail+sqwebmail的安装步骤

发布: 2007-5-25 23:49 | 作者: 未知 | 来源: ChinaUnix.net | 查看: 19次 | 进入软件测试论坛讨论

领测软件测试网
一、安装环境
安装平台: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:"

            &bp;/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-auth-authpthpwd --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

    pbsp; 拷贝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/

 laixi781211 回复于:2003-02-10 10:47:04
#./vadddomain mydomain.com mydomain 
这句应去掉mydomain即./vadddomain mydomain.com这时候提示输入postmaster的密码,可以输入自己的密码。
是这样的:
初学者一开始安装不知道,最后登陆的时候不知道密码是什么,如果照你那样应该是mydomain?
另外如果密码正确还是登陆不进去,在看一下是不是启动了authdaemond
/usr/local/share/sqwebmail/libexex/auth/lib/authdaemond start
因为我按照这篇文章装过,就遇到过这些问题。

 netloafer 回复于:2003-02-10 11:06:33
是的,应该说明~~

 day-dreamer 回复于:2003-02-11 11:23:30
我做第二步时就出现:
[root@sosoyang qmail-1.03]# ./config
Your hostname is sosoyang.
hard error
Sorry, I&nb;oln''''t find your&s;ot''''s canonical name in DNS.
You will have to set up control/me yourself.
这样的情况,我譔 怎样设置我的dns呀.请各位教教我呀,
谢谢

 day-dreamer 回复于:2003-02-11 11:28:47
在哪 里设dns呀.如何设呀..请教教我呀,谢谢

 netloafer 回复于:2003-02-11 11:59:01
/etc/resolv.conf修改这里就可以了,

增加nameserver *.*.*.*

 day-dreamer 回复于:2003-02-11 12:07:36
nameserver 210.62.128.1
nameserver 192.168.16.2
resolv.confi里,我内部外部都加了呀..但依然是这样呀..
老大,救我呀..

 laixi781211 回复于:2003-02-12 20:27:16
你的DNS SERVER正常吗?能解析你的主机?

 day-dreamer 回复于:2003-02-13 08:38:05
正常的呀..我這一步總算可以了.但為什麼裝到vpopmail的最后一步crontab -e里出現/tmp/crontab.6741 這些就無反應了啦呢..到底怎麼辦呀.請教一下我.謝謝

 laixi781211 回复于:2003-02-13 11:11:32
正常            
你按一下insert键,输入内容,完毕后保存.

 windowsnt 回复于:2003-02-20 11:30:06
为什么我不能收邮件呢?自己发给自己的也收不到

 gadfly 回复于:2003-02-20 11:49:42
qmail启动了么?

另外看看/var/log/mail.log报什么错误

 9命怪猫 回复于:2003-04-04 20:57:07
[quote:442d8020d6="windowsnt"]为什么我不能收邮件呢?自己发给自己的也收不到[/quote:442d8020d6]

我也遇到这个问题。正在郁闷呢~

 gadfly 回复于:2003-04-04 21:03:41
最好有现象, 才好判断错误类型

 9命怪猫 回复于:2003-04-04 21:35:14
[quote:d4cc0579b1="gadfly"]最好有现象, 才好判断错误类型[/quote:d4cc0579b1]

特别怪异。从自己的计算机telnet 192.168.3.15 25
或者telnet 192.168.3.15 110都可以连接上。
qmailadmin也显示正常。可以添加用户。自己给自己发信,收不到。 
发信可以发出去。但是没有写/var/log/maillog 

nslookup查询dns记录,NS MX记录都有。

 ability 回复于:2003-04-11 02:14:38
我在安装vpopmail-5.2.1时出错.

./configure --enable-roaming-users=y --enable-default-domain=root.com --enable-passwd=n

执行没钱,运行make
就报如下错误:
make  all-recursive
make[1]: Entering directory `/root/qmail/vpopml521''''
Making all in cdb
make[2]: Entering directory `/root/qmail/vpopmail-21cb''''
make[2]: Nothing to be done for&s;al''''.
make[2]: Leaving directory `/root/qmail/vpopmail-21cb''''
make[2]: Entering directory `/root/qmail/vpopml521''''
gcc -I. -Icdb      -g -O2 -Wall -c vpopmail.c
vpopmail.c:26:20: string.h: No such file or directory
make[2]: *** [vpopmail.o] Error 1
make[2]: Leaving directory `/root/qmail/vpopml521''''
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/qmail/vpopml521''''
make: *** [all-recursive-am] Error 2



string.h哪里有?

 ilovewalk 回复于:2003-04-15 21:01:42
[quote:05a52cf12c="day-dreamer"]oyang qmail-1.03]# ./config
Your hostname is sosoyang.
hard error
Sorry, I&nb;oln''''t find your&s;ot''''s canonical name in DNS.
You will have to set up control/me yourself.
这样的情况,我譔 怎样设置我..........[/quote:05a52cf12c]
你是怎么解决的啊,我也遇到了这个问题,用nslookup看了,也有记录,ping也可以ping通,但就是报错!!!

 ilovewalk 回复于:2003-04-15 21:04:08
netloafer老大,能不能具体说一下
建立maildir的方法: 
   $/var/qmail/bin/maildirmake /etc/skel/Maildir 
   $echo ./Maildir/ > ~/.qmail 
这一步怎么做啊,我是菜鸟列,呵呵.

 高达W 回复于:2003-04-26 11:32:01
[quote:308973b198="day-dreamer"]正常的呀..我這一步總算可以了.但為什麼裝到vpopmail的最后一步crontab -e里出現/tmp/crontab.6741 這些就無反應了啦呢..到底怎麼辦呀.請教一下我.謝謝[/quote:308973b198]

我怎么过不去啊,你怎么处理的?

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网