對於管理員來說,當然需要一個好的工具來對郵件系統進行管理。實際上,Qmail就有個擅長管理的好伙伴——VmailMgr。
VmailMgr介紹
VmailMgr全稱是Virtual Mail ManaGeR(虛擬郵件管理器),是專門配合Qmail的一個軟件包,利用它可以實現以下功能:
* 增強Qmail的口令驗證功能,使用戶可以通過POP3及IMAP訪問自己的虛擬郵箱;
* 基於CDB的用戶口令管理方式,尤其是在用戶數量較大時可以大大提高口令驗證速度;
* 提供了豐富的工具進行虛擬域、虛擬用戶及別名(Aliases)的管理;
* 提供一組功能強大的CGI,可以直接通過網頁進行增加用戶、刪除用戶和修改密碼等各種管理工作;
* 提供一組PHP函數,可以靈活地編寫PHP文件,並通過網頁進行各種管理工作;
* 通過後台進程確保CGI和PHP代碼操作的安全。
VmailMgr安裝
最新版本的VmailMgr 可在www.Vmailmgr.org或http://em.ca/~brUCeg/vmailmgr/ 下載。如果下載RPMS包,至少要下載Vmailmgr和 Vmailmgr-daemon 包。
筆者推薦大家從源代碼安裝,其安裝方法如下:
(做為非root 用戶)
tar zxf
cd
./configure
make
(做為root 用戶)
make install
VmailMgr使用
安裝VmailMgr完成後,開始使用虛擬域之前,還有幾個必要的步驟,我們以建立一個虛擬用戶“
[email protected]”(其別名是“
[email protected]”和“
[email protected]”)為例,一步步地進行介紹。
1.首先要為這個虛擬域做域名解析。在DNS服務器上將MX記錄指向郵件服務器,如果想使虛擬域可以基於IP地址正常工作,還需要在DNS服務器上做一條PTR記錄,例如:如果nslookup 10.56.33.122 返回 mail.mydomain.com,那麼為了使用“虛擬域”,對應於IP地址的PTR是:“mail.mydomain.com:myuser”。
2. 建立該虛擬域的基本用戶。這個用戶的UNIX登錄口令也將作為進行該虛擬域的郵件系統管理超級用戶口令,所有該虛擬域的虛擬用戶的郵件都將保存在這個用戶的目錄下,所以這個目錄要留有足夠的空間。例如,我們建立了用戶“v” 做為虛擬域的基本用戶,用戶目錄在“/home/vmailuser”。
3.告訴Qmail 識別這個虛擬域。這需要修改Qmail在“/var/qmail/control”目錄下的兩個設置文件: “rcpthosts”和“virtualdomains”。
1)在“rcpthosts”中加入“mydomain.org”。
2)在“virtualdomains”中加入“mydomain.org:v”。
如果想使用“anything.mydomain.org”的形式, 可按如下修改:
3)在 “rcpthosts”中加入“.mydomain.org”。
4)在“virtualdomains”加入“.mydomain.org:v”。
4.修改Qmail-popup/Qmail-
POP3D的口令校驗方式,使用VmailMgr 提供的“checkvpw”。具體的修改方法依賴於Qmail的安裝方式。
1)將Qmail-popup/Qmail-POP3D 命令行中的“checkpassWord”換成“checkvpw”(Qmail-popup/Qmail-
POP3D命令行可能在“/etc/inet.conf”中或者在一個“tcpserver”命令中 )。
2)打入以下命令:
′echo checkvpw > /var/qmail
/control/checkpassword′
5. 加入虛擬用戶及別名。首先以剛才創建的基本用戶身份登錄(如, “su - v”),然後就可以使用Vmailmgr提供的命令進行用戶及別名的建立。例如下面的命令將建立一個用戶me及他的兩個別名myself和myname:
1)執行命令:“vadduser me”(將提示要求輸入口令)
2)執行命令:“vaddalias me myself”
3)執行命令:“vaddalias me myname”
完成以上步驟後,你還需要殺掉並重新啟動“Qmail-send”,讓它讀新建的“virtualdomains”表,安裝過程就完成了。可以通過下面兩種方式進行使用訪問:
一種是以“userSEPvirtual.domain.org”形式登錄,“user”是虛擬用戶名;SEP分隔符,可以是“@”或者 “:”(可在“/etc/vmailmgr/”目錄下設置);“virtual.domain.org”是虛擬域的域名,與 “/var/qmail/control/
virtualdomains”文件中相同。
第二種方式是以郵箱的內部形式訪問——“baseuser-user”,這裡的“user”是虛擬用戶名,而“baseuser”是該虛擬域的基本用戶,也是該虛擬域的郵件系統管理者。
例如 “/var/qmail/control/
virtualdomains”含有:“mydomain.com:v”
已經建立了基本用戶“v”,並建立了虛擬用戶“me”,在“/etc/vmailmgr/”中的“分隔符”變量包含“@:”,那麼這個虛擬用戶的郵件可以用 “
[email protected]”、“me:mydomain.com”或者“v-me”方式訪問。
VmailMgr對POP3 及IMAP的支持
要使Qmail的POP3支持VmailMgr的虛擬用戶認證方式,需要在“/etc/qmail/control/checkpass
word”文件中加入“checkvpw”,並重新啟動POP3D。
VMailMgr支持Courier-IMAP, 但 Courier-IMAP卻不能自動檢測到VMailMgr。這意味著我們要做一些工作以使它們兩者一起工作順暢。
*首先,你必須將′/usr/local/bin/authvmailmgr′拷貝到′/usr/
lib/courier-imap/libexec/authlib/authvmailmgr′。
* 然後,編輯′/usr/lib/courier
-imap/etc/imapd.config′文件中的“AUTHMODULES”聲明,並且添加′authvmailmgr′為第一個確認系統。
VmailMgr的命令與系統配置
VmailMgr的系統參數都在 “/etc/vmailmgr/”目錄下以文件的形式進行設置。可進行設置的項很多,如口令的驗證方法、默認郵件大小、軟硬磁盤空間限額及用戶目錄名等。每一項對應一個設置文件,如果沒有對應的文件則采用系統默認值。具體設置方法可參考VmailMgr文檔中的configuration.htm。
VmailMgr提供用戶認證、管理,郵件管理的命令也很豐富,常用的命令見表2。其具體的使用方法可參考http://www.vmailmgr.org/docs/下的文檔。
表2 命令名稱
用途
vmailmgrd
vmailmgr 的守護進程
vsetup
建立一個虛擬域
vadduser
增加一個虛擬用戶
vdeluser
刪除一個虛擬用戶
vaddalias
增加一個別名
vdelalias
刪除一個別名
vpasswd
修改一個虛擬用戶的口令
vdeliver
通過vmailmgr 投遞郵件信息
vauthenticate
驗證一個虛擬用戶
checkvpw
為虛擬和非虛擬用戶驗證口令
vchattr
修改一個虛擬用戶的各項屬性
VmailMgr提供用戶認證、管理,郵件管理的命令也很豐富,常用的命令見表2。其具體的使用方法可參考http://www.vmailmgr.org/docs/下的文檔。
表2 命令名稱
用途
vmailmgrd
vmailmgr 的守護進程
vsetup
建立一個虛擬域
vadduser
增加一個虛擬用戶
vdeluser
刪除一個虛擬用戶
vaddalias
增加一個別名
vdelalias
刪除一個別名
vpasswd
修改一個虛擬用戶的口令
vdeliver
通過vmailmgr 投遞郵件信息
vauthenticate
驗證一個虛擬用戶
checkvpw
為虛擬和非虛擬用戶驗證口令
vchattr
修改一個虛擬用戶的各項屬性