一、安裝環境
安裝平台: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/
target="_blank">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 700Maildir設定權限。
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 為例:
移除inetd.conf中的sendmail之設定,以及/etc/rc.d/init.d下的sendmail啟動?br>募??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的UserID,以及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/
target="_blank">http://www.linuxaid.com.cn/solution/上有幾篇比較好的安裝文?br>?/a>
href="http://www.linuxforum.net/cgi-bin/perl/wwwthreads.pl上的qmail討論也不錯"target="_blank">http://www.linuxforum.net/cgi-bin/perl/wwwthreads.pl上的qmail討論也不錯