Qmail是一款完全可以替代Sendmail郵件體系的新一代Unix郵件系統,相比Sendmail而言,它具有更高的安全性、可靠性及運行效率,並且安裝配置都比較簡單。qmail是自由軟件,完全免費,遵從GPL版權聲明,並且在internet上可以找到大量的qmail附加軟件包來增強它的功能,因此,在各類郵件服務器解決方案中它擁有最旺的人氣。
我用的操作系統是IBM Aix4.32,但在qmail源代碼包的README文件裡,只有aix4.2及其以前版本成功的測試記錄。下面介紹一下我在aix4.32上的安裝過程,這與別的unix操作系統上的安裝有些區別。
我用的C編譯器是gcc2.95.2,采用較流行的Maildir郵箱存儲格式,使用系統用戶作為郵件賬戶來滿足最基本的收發郵件需求。通過訪問http://www.qmail.org或mirror站點下載qmail的核心軟件包qmail-1.03.tar.gz,在http://cr.yp.to/checkpwd/install.Html下載pop3用戶密碼驗證程序checkpassWord-0.90.tar.gz。
先解壓縮軟件包並進入解壓後的源代碼目錄:gzip -dc qmail-1.03.tar.gztar xvf -;cd qmail-1.03
仔細閱讀INSTALL和FAQ文件,並開始按步就班的安裝編譯源程序。
1、建立/var/qmail目錄: mkdir /var/qmail
2、按照INSTALL.ids文件中的方法一一建立qmail各後台進程所要用到的用戶和組。如果是通過命令行的方式來建立用戶和組的話,則需要修改/etc/security/login.cfg文件,在裡面添加/bin/true做為合法的shell,這樣有點麻煩,建議直接修改/etc/group和/etc/passwd兩個文件來建立用戶和組,更方便有效。
3、qmail默認的編譯器是cc,而我用的是gcc,所以有必要使得qmail在安裝時調用gcc來編譯。有兩種方式可以解決此問題,一種方式是給gcc建立一個名為cc的象征性鏈接文件:ln -s /path-to-gcc/gcc /usr/bin/cc;另一種方式是修改conf-cc和conf-ld文件,將其默認的編譯器cc替換為gcc。
開始編譯及建立Qmail 的目錄結構:make setup check
這一步是我在安裝時遇到的最大阻礙,編譯出錯不能通過。憑借我對unix下C編程的一知半解及根據編譯出錯提示,我修改了dns.c文件,刪除第11行“extern int h_errno;”。重新編譯,通過,在後來的使用過程中也沒有發現有什麼問題,正常。在其它的unix操作系統上安裝qmail時不會出現這樣的情況,但到底在aix上為什麼會這樣,我目前還不大清楚,希望高人指點。
4、在配置qmail前,請認真閱讀INSTALL.ctl和FAQ。配置命令有兩個,config和config-fast,config將試圖對本機IP地址在DNS上進行反向解析,從而確定本機域名;如果反向解析失敗,則配置也就失敗。建議用類似./config-fast your.full.host.name這樣的命令直接確定本服務器主機域名來配置。
5、閱讀INSTALL.alias文件,這裡有對添加郵件用戶別名的一些介紹。但至少也要給一些不能接收郵件的系統帳戶添加別名,並修改/var/qmail/alias目錄下所有文件的訪問權限來增加安全性。
# (cd ~alias; toUCh .qmail-postmaster .qmail-mailer-daemon .qmail-root)
# chmod 644 ~alias/.qmail*
6、有必要的話,可以先讀一讀NSTALL.mbox、INSTALL.maildir和INSTALL.vsm文件,這裡介紹了有關qmail郵件存儲格式和郵件投遞方面的內容。
7、建立/var/qmail/rc。/var/qmail/rc是用來啟動qmail的文件,很重要。拷貝/var/qmail/boot/home到/var/qmail/rc。
# cp /var/qmail/boot/home /var/qmail/rc
# chmod 755 /var/qmail/rc
我們采用Maildir郵箱存儲格式,對rc文件做相應的修改,修改其中./Mailbox為./Maildir,修改後的內容如下:
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir splogger qmail
8、啟動qmail: csh -cf '/var/qmail/rc &'
最好將這條命令加到系統的啟動文件中,以便以後在系統重啟時自動啟動qmail。參照TEST.deliver介紹的方法進行測試。
9、如果當前系統上已安裝有sendmail並且在使用中,那麼請參照SENDMAIL、REMOVE.sendmail、REMOVE.binmail等文件做好從sendmail向qmail的轉移。別忘了安裝qmail的sendmail外殼:
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
10. 安裝checkpassword。它用於對pop3用戶的密碼驗證,安裝也很簡單,過程如下:
gzip checkpassword-0.90.tar.gz
tar -xf checkpassword-0.90.tar
cd checkpassword-0.90
make
make setup check
11、編輯/etc/inetd.conf文件,設置qmail-smtpd,用於發信,如下所示(所有文字在同一行):
smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd
同樣,添加qmail-pop3d,用於收信,如下所示(所有文字在同一行):
pop3 stream tcp nowait root /var/qmail/bin/qmail-popup qmail-popup your.domain.name /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir
12、重新啟動inetd:refresh -s inetd
13、創建郵件用戶。在每個用戶的初始目錄下用命令/var/qmail/bin/maildirmake創建郵箱目錄並賦予適當的權限,也可以建立一個Shell腳本程序來完成每個郵件賬戶的創建,下面是一個簡單的例子,請創建好一個名為mailgrp的組,用於將郵件用戶加入到此組,如果給此腳本程序命名為qmadd,則增加郵件賬戶的語法為:qmadd
if test $1
then
echo "creating user $1 and its maildir Directory..."
mkuser pgrp='mailgrp' $1
cd /home
chown $1 $1
cd $1
/var/qmail/bin/maildirmake Maildir
echo ./Maildir/ > .qmail
chown $1 Maildir
chown $1 Maildir/*
chown $1 .qmail
passwd $1
echo "$1's account has been created!"
else
echo "Usage: qmadd username"
fi
14、測試。如果郵件服務器是用在internet上,別忘了DNS上的mx記錄應指向本服務器的IP地址。在TEST.receive文件中介紹了一些對郵件收發的測試方式。在此我建議在windows客戶機上用FoxMail或Outlook來做收發郵件測試,這樣更為簡便有效。另外要注意/var/qmail/control目錄下一些文件的配置,rcpthosts文件用於對轉發信的限止,me文件表示系統的正式域名,timeoutconnect文件用於設置SMTP連接超時時間等。
本文只是介紹了qmail最基本的安裝配置,如果要使得qmail有虛擬域支持、郵件列表管理、自動回復、webmail、web方式管理、web方式用戶注冊等功能,那需要安裝另外的附加軟件包,相關資料大家可以在internet上查找,有很多,雖然這些資料大都是針對Linux操作系統的,不過aix上的安裝配置也大同小異,所以在這就不多做介紹了。
本文只是介紹了qmail最基本的安裝配置,如果要使得qmail有虛擬域支持、郵件列表管理、自動回復、webmail、web方式管理、web方式用戶注冊等功能,那需要安裝另外的附加軟件包,相關資料大家可以在internet上查找,有很多,雖然這些資料大都是針對Linux操作系統的,不過aix上的安裝配置也大同小異,所以在這就不多做介紹了。