參考文檔:
The qmail HOWTO v2
by Adam McKenna
http://www.flounder.net/qmail/qmail-howto.html
Life with qmail
by Dave Sill
http://www.lifewithqmail.org/lwq.html
xx作系統:redhat linux 7.2 (Enigma)
所需軟體:
qmail-1.03.tar.gz
qmail-103.patch
ucspi-tcp-0.88.tar
daemontools-0.76.tar.gz
MySQL-3.22.32-1.i386.rpm
MySQL-client-3.22.32-1.i386.rpm
MySQL-share-3.22.32-1.i386.rpm
MySQL-devel-3.22.32-1.i386.rpm
vpopmail-4.9.8.tar.gz
vqsignup-0.5.tar.gz
sqwebmail-1.2.0.tar.gz
所有軟體都放置在/home/kingsix 目錄下。
設定該測試機的hostname為testmail.com.cn。
1. qmail的安裝
在安裝之前完全刪除sendmail(linux內建的mail伺服器)
killall -TERM sendmail
rpm -e --nodeps sendmail
[root@testmail kingsix]# tar zxvf qmail-1.03.tar.gz
對qmail打補丁
[root@testmail kingsix]#cp qmail-103.patch qmail-1.03
[root@testmail kingsix]# cd qmail-1.03
[root@testmail qmail-1.03]#patch -p1 < qmail-103.patch
此補丁修改dns.c檔案,解決網域名稱服務 (DNS)的一些問題。
建立 /var/qmail目錄。
建立運行qmail所需要的組和使用者:
# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
# useradd -g nofiles -d /var/qmail -s /bin/false qmaild
# useradd -g nofiles -d /var/qmail -s /bin/false qmaill
# useradd -g nofiles -d /var/qmail -s /bin/false qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail -s /bin/false qmailq
# useradd -g qmail -d /var/qmail -s /bin/false qmailr
# useradd -g qmail -d /var/qmail -s /bin/false qmails
下一步編譯qmail:
[root@testmail qmail-1.03]#make setup check
如果編譯成功,在/var/qmail下面將會有完整的qmail的目錄結構。
2 . 安裝daemontools
[root@testmail kingsix]#tar zxvf daemontools-0.76.tar.gz
將會在kingsix目錄下產生admin目錄
[root@testmail kingsix]#cd admin
[root@testmail admin]#cd daemontools-0.76
[root@testmail daemontools-0.76]#package/install
完成daemontools的安裝。
3. qmail的配置
為qmail添置網域名稱
[root@testmail qmail-1.03]#./config-fast testmail.com.cn
修改 /var/control目錄下面的locals 和rcpthost 檔案。
4. 安裝qmail alias
[root@testmail qmail-1.03]#cd /var/qmail/alias
[root@testmail alias]#echo admin > .qmail-root
[root@testmail alias]#echo admin > .qmail-postmaster
[root@testmail alias]#echo admin > .qmail-mailer-daemon
5.裝配daemontools和建立控制目錄
下面設定當系統啟動時自動啟動qmail。這裡要使用daemontool裡面的svcan工具。這些工具安裝
在/usr/local/bin目錄下面。
# mkdir -p /var/qmail/supervise/qmail-send/log
# mkdir -p /var/qmail/supervise/qmail-smtpd/log
# chmod +t /var/qmail/supervise/qmail-send
# chmod +t /var/qmail/supervise/qmail-smtpd
# mkdir -p /var/log/qmail/qmail-send
# mkdir -p /var/log/qmail/qmail-smtpd
# chown -R qmaill /var/log/qmail
在各個目錄下面編輯一些指令檔
到/var/qmail/supervise/qmail-send 目錄下,建立名為run的檔案,內容如下:
#!/bin/bash
exec /var/qmail/rc
到/var/qmail/supervise/qmail-send/log 目錄下,建立名為run的檔案,內容如下:
#!/bin/bash
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 /var/log/qmail/qmail-send
到/var/qmail/supervise/qmail-smtpd 目錄下,建立名為run的檔案,內容如下:
#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
exec /usr/local/bin/softlimit -m 2000000 /
/usr/local/bin/tcpserver -H -R -v -p -x /etc/tcp.smtp.cdb /
-u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
到/var/qmail/supervise/qmail-smtpd/log 目錄下,建立名為run的檔案,內容如下:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 /var/log/qmail/qmail-smtpd
修改指令碼屬性為可執行
chmod +x run
6.存取控制
編輯/etc/tcp.smtp檔案為
127.0.0.1:allow,RELAYCLIENT=""
192.168.2.:allow,RELAYCLIENT=""
:allow
允許本機和本地區域網路任意轉寄。但是tcpserver通過讀取cdb檔案來工作,所以需要用tcprules來轉換tcp.smtp檔案
# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
7. 建立/var/qmail/rc
#cp /var/qmail/boot/home /var/qmail/rc
編輯rc
#!/bin/sh
# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.
exec env - PATH="/var/qmail/bin:$PATH" /
qmail-start ./Maildir/ splogger qmail
增加rc的可執行屬性 chmod +x rc
8.啟動qmail
#mkdir /service
#ln -s /var/qmail/supervise/* /service/
用ps 察看進程,可以看到一些supervise 和qmail相關的進程。
一個郵件伺服器就這樣安裝好了。