Qmail是一種可以完全替代Sendmail-binmail體系的新一代Unix郵件系統.Qmail與Sendmail比起來有很多特性,包括:
安全
----Qmail將Mail處理過程分為多個過程,盡力避免用root用戶運行.同時Qmail禁止對特權用戶(root,deamon等)直接發
信.
可靠
----Qmail的直接投遞保證Email在投遞過程中不會丟失. Qmail同時支持新的更可靠的信箱格式Maildir,保證系統在突然崩潰情況下不至破壞整個信箱.
高效
----在運行於奔騰的BSD/OS上,Qmail每天可以輕松的投遞200000封信件.
簡單
----Qmail要比其他的Internet Mail系統小得多.Qmail通過統一的向前機制完成forwarding,alias和maillist等功能,Qmail使用簡單高效隊列來處理投遞.Qmail-smtpd可以由inetd啟動,節省了一定資源.
Qmail支持: host and user masquerading
full host hiding
virtual domains
null clients
list-owner rewriting
relay control
double-bounce recording
arbitrary RFC 822 address lists
cross-host mailing list loop detection
2.2 所需資源
2.2.1 所需包
qmail-1.03.tar.gz Qmail基本系統包
ucspi-tcp-0.88.tar.gz tcpserver等服務程序
daemontools-0.70.tar.gz 監視工具
checkpassword-0.90.tar.gz pop3驗證用戶程序
vpopmail-4.9.8.tar.gz 虛擬域用戶pop3支持
vqsignup-0.4 web方式用戶注冊
sqwebmail-1.2.4.tar.gz webmail
qmailadmin-0.42.tar.gz 虛擬域web方式管理
ezmlm-0.53.tar.gz 郵件列表管理
autorespond-1.0.0.tar.gz 自動回復程序
2.2.2 下載網址
http://www.qmail.org
http://www.inter7.com/qmail
2.3 安裝過程
安裝Qmail基本包添加Qmail所必須的用戶和組
mkdir /var/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 nofiles -d /var/qmail qmailq
useradd -g nofiles -d /var/qmail qmailr
useradd -g nofiles -d /var/qmail qmails
安裝Qmail包
cd /usr/local/src
tar xvzf qmail-1.03.tar.gz
cd qmail-1.03
make setup check
./config-fast $HOSTNAME
# 設定Qmail服務器主機名
cd ~alias;touch .qmail-postmaster .qmail-mailer-\
daemon .qmail-root
sed 's/Mailbox/Maildir\//' /var/qmail/boot/home >\
/var/qmail/rc
chmod 755 /var/qmail/rc
安裝tcpserver等服務程序
cd /usr/local/src
tar xvzf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
make
make setup check
安裝pop3驗證用戶程序
cd /usr/local/src
tar xvzf checkpasswd-0.90.tar.gz
cd checkpasswd-0.90
make
make setup check
chmod og-rx /bin/checkpassword
安裝虛擬域用戶pop3支持
groupadd vchkpw
useradd -g vchkpw vpopmail
mkdir ~vpopmail/etc
echo "127.0.0.:allow,RELAYCLIENT=\"\"" > ~vpopmail/etc/tcp.smtp
echo "192.168.0.:allow,RELAYCLIENT=\"\"" >> ~vpopmail/etc/tcp.smtp
echo ":allow" > /etc/tcp.smtp
/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
cd /usr/local/src
tar xvzf vpopmail-4.9.8.tar.gz
cd vpopmail-4.9.8
make clean
./configure --enable-hardquota=10485760 --enable-deliver-filter=y
make
make install-strip
cd /home/vpopmail/bin
./vadddomain weboa.com.cn weboa
./vadduser [email protected] thj
更改Sendmail為Qmail
killall -TERM sendmail
mv /usr/lib/sendmail /usr/lib/sendmail.org
mv /usr/sbin/sendmail /usr/sbin/sendmail.org
mv /etc/rc.d/init.d/sendmail /etc/rc.d/init.d/sendmail.org
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
cp /root/qmail/qmail-start /etc/rc.d/init.d/ -f
cp /root/qmail/databytes /var/qmail/control/ -f
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc3.d/S98qmail
制作Qmail控制腳本
#!/bin/sh
case "$1" in
start)
echo "start qmail:"
/var/qmail/rc &
echo "start smtp service:"
/usr/local/bin/tcpserver -v -x /etc/tcp.smtp.cdb 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger \
smtpd 3 &
echo "start pop3 service:"
/usr/local/bin/tcpserver -H -R 0 pop3 /var/qmail/bin/ \
qmail-popup $HOSTNAME /home/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d Maildir & \
;;
stop)
echo "stop qmail:"
killall -9 tcpserver
killall -9 qmail-lspawn
;;
*)
exit 1
;;
esac
exit 0
安裝監視工具
cd /usr/local/src
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之Web解決方案安裝郵件列表管理
cd /usr/local/src
tar zxvf ezmlm-0.53.tar.gz
make
make man
make setup
安裝自動回復程序
cd /usr/local/src
tar zxvf daemontools-0.70.tar.gz
gcc -Wall -o autorespond autorespond.c
cp autorespond /usr/local/bin/autorespond
安裝虛擬域web方式管理
cd /usr/local/src
tar zxvf qmailadmin-0.42.tar.gz
cd qmailadmin-0.42.tar.gz
在安裝前首先要考慮滿足以下幾項要求:
a.是否擁有一個vpopmail用戶vchkpw
b.cgi-bin目錄的所在位置
c.ezmlm目錄的所在位置
d.autorespond目錄的所在位置
如果能夠達到以上要求,可以繼續安裝
./configure
make
make install-strip
檢測安裝是否正確:浏覽器中打開路徑
http://mail.weboa.com.cn/cgi-bin/qmailadmin,
看根據前面設置的用戶和密碼是否能夠成功登錄進去。
安裝WebMail包
cd /usr/local/src
tar zxvf sqwebmail-1.2.4.tar.gz
cd sqwebmail-1.2.4.tar.gz
./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.weboa.com.cn/cgi-bin/sqwebmail
安裝vqsignup
tar xvfz vqsignup-0.4.tar.gz
cd vqsignup-4.0修改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的目錄
編譯
make
安裝
拷貝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文件,使它只包含你想支持的域,你也可以定制這個頁面,使它更加好看些。
測試
用你的浏覽器訪問http://your web server/your sub dir/vqsignup.htm, 試著注冊新用戶,如果成功的話,那麼就恭喜你了。如果有錯誤,請返回安裝步驟仔細查看文件的權限和vqsignup.html裡的值是否正確。
2.4 其他參考資料
Adam McKenna所編寫qmail-HOWTO
http://www.flounder.net/qmail/qmail-howto.html
qmail FQA (內含於qmail 1.03 Source Code)
http://www.qmail.org/
http://www.linuxaid.com.cn/solution/上有幾篇比較好的安裝文檔
http://www.linuxforum.net/cgi-bin/perl/wwwthreads.pl上的qmail討論也不錯
2.5小結
Qmail配置工作雖然較Sendmail來說已經大大簡化,但要想真正建立一個功能強大、運行穩定的郵件服務器,掌握其靈活的配置,認真閱讀其How-to和FAQ還是極有必要的。關於Dot-forward、郵件列表等其他非常有用的方法和使用技巧,限於篇幅就不再介紹了,建議大家參考軟件包中的有關文檔。