Vpopmail
vpopmail 是甚麼?
vpopmail 是一個虛擬郵件後端系統。它被設計成與 qmail 的虛擬區域一同運作。vpopmail 支援以 MySQL、PostgreSQL、LDAP 等不同後端系統來儲存用戶及區域設定。
為甚麼選擇 vpopmail?
vpopmail 提供一套良好的管理工具,及一個設計尚算不錯的架構,可省丟你自訂一個的功夫。vpopmail 亦已經面世很久,並且穫得到很多與郵件相關的軟件支援,這樣令整合方面頗為容易。
這份教學文件是關於甚麼的?
這份教學文件會提供指引,是關於如何安裝一個支援 MySQL 資料庫的 vpopmail,並且將它與某些附帶在 CentOS 4 中與郵件有關的軟件進行整合。
1. 安裝條件
你必須要有 qmail,因為 vpopmail 與 qmail 有關連。mysql-devel 這個套件亦必須已安裝,因它要用來釋譯 vpopmail 針對 MySQL 的支援。
如果你並未安裝 qmail,那麼你可以依照以下指示去做。然而,這份教學文件要處理的並非 qmail。請參閱 qmail-tester 網站(http://www.qmailtoaster.com/ )關於 qmail + vpopmail 的設置。
下載位於 http://cr.yp.to/software/qmail-1.03.tar.gz 的 qmail 源代碼壓縮檔。
將源代碼解壓。
編譯前的預準工夫包括加入 qmail 所採用的 2 個群組及 7 用戶口。
mkdir /var/qmail groupadd nofiles useradd -s /sbin/nologin -g nofiles -d /var/qmail/alias alias useradd -s /sbin/nologin -g nofiles -d /var/qmail qmaild useradd -s /sbin/nologin -g nofiles -d /var/qmail qmaill useradd -s /sbin/nologin -g nofiles -d /var/qmail qmailp groupadd qmail useradd -s /sbin/nologin -g qmail -d /var/qmail qmailq useradd -s /sbin/nologin -g qmail -d /var/qmail qmailr useradd -s /sbin/nologin -g qmail -d /var/qmail qmails
進到 qmail 源代碼的目錄。(cd qmail-1.0.3)
在 conf-cc 檔案內加入 'gcc -O2 -include /usr/include/errno.h'
執行 'make setup check' 來編譯 qmail 及安裝 qmail 到系統
執行 './config-fast localhost' 來為 qmail 進行 vpopmail 所需的最基本設定。
現在你擁有一個能夠滿足 vpopmail 要求的 qmail 安裝。
2. 建立支援 mysql 的 vpopmail
從 sourceforge 下載 vpopmail 的源代碼。這份教學文件處理的版本是 5.4.17。http://sourceforge.net/project/showfiles.php?group_id=85937
vpopmail 一般使用 uid 89 及 gid 89,但由於 Postfix 同樣使用它們,我們必須使用其它值:uid 91 及 gid 91。
groupadd -g 91 vchkpw useradd -g vchkpw -u 91 vpopmail
從壓縮檔取出源代碼,然後進入源代碼的目錄。
./configure --enable-mysql-replication --enable-sql-logging --enable-auth-module=mysql --disable-users-big-dir --enable-valias
這些選項會讓我們使用一個主 MySQL 伺服器來寫入日誌、和建立用戶/區域,而 vpopmail 及其它軟件會透過 vpopmail 的函式庫來閱讀從屬 mysql 上的用戶/區域資訊。--enable-valias 告訴 vpopmail 將電郵別名儲存在 MySQL 資料庫內,而不是在 .qmail 檔案裡。在這個設置裡,所有電郵地址將會儲存在一個資料表,而別名會儲存在另一個資料表。
make
3. 安裝 vpopmail 並為 MySQL 設定它
make install/make install-strip
vpopmail 的 MySQL 設定儲存在 /home/vpopmail/etc/vpopmail.mysql 這個檔案裡。下列範例針對的是單一個 MySQL 資料庫。
# VPOPMAIL 的 MYSQL 連線設定 # # 第 1 行定義閱讀資料庫時的連線, # 第 2 行定義更新/寫入資料庫時的連線。 # # 如果你省略第 2 行,同一個設定將會用來作閱讀及寫入 # 之用。 # # 每行的設定包括: # 主機|連接埠|用戶|密碼|資料庫 # localhost|0|vpopmail|vpopmailpass|vpopmail # # 註: # 主機的值可以是主機的名稱或一個 IP 位址。如果主機是 'localhost', # 到伺服器的連線將會採用通訊端(Unix)或具名管道(Windows),而不 # 是 TCP/IP。
vpopmail 的二進制程式將會安裝在 /home/vpopmail/bin 內。當新增及刪除用戶/s區域時,這些程式應該以 root 身份執行,因為它們將會更改 /var/qmail/control 內的檔案。你須先建立 vpopmail 這個資料庫並賦予存取權,然後才使用 vpopmail。
現在 vpopmail 的安裝已經完成。
4. 供不直接支援 vpopmail 的軟件所用的接合軟件
courier 這個軟件與 vpopmail 在一起的歷史已很長久。有很多不直接支援 vpopmail 的郵寄軟件都支援 courier 這個驗證函式庫。因此它可以成為 vpopmail 與 maildrop 等軟件之簡的接合軟件。你可以從 http://sourceforge.net/project/showfiles.php?group_id=5404 下載 courier-authlib 及 maildrop。
4.1. courier-authlib
courier 軟件不可以在 root 戶口下編譯。另外,要令 courier-authlib 選用 vpopmail 函式庫,你需要在設置建立程序時能夠存取它們。因此我們建議你使用 vpopmail 這個用戶來建立 courier-authlib。courier-authlib 的源代碼需要靠一個小修正來讓它全面使用 vpopmail:courier-authlib-vpopmail.patch。
patch -p1 < courier-authlib-vpopmail.patch cd courier-authlib-0.58 ./configure --prefix=/usr/lib/courier --with-redhat \ --with-mailuser=vpopmail --with-mailgroup=vchkpw \ --with-mysql-libs=/usr/lib/mysql \ --with-mysql-includes=/usr/include/mysql make make install make install-configure
你可以使用 authdaemond 這個支援 chkconfig 的範例 sysvinit 腳本來啟用服務:authdaemond
Translation of revision 12