qmail+vpopmail+sqwebmail是非常优秀的web mail解决方案,本文将详细介绍具体的安装过程,希望可以帮助你顺利实现web mail系统
。
一. 安装环境
安装平台: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中。
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 为例:
移除.netd.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的启动
移除.netd.conf中有关smtp及pop3的设定(加上#号)
编辑/etc/services,改为以下设定:
smtp25/tcpmail
# pop-3 110/tcp #pop version 3
# pop-3 110/udp
pop3110/tcp
pop3110/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里的值是否正确。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器