[FrontPage] [TitleIndex] [WordIndex

This is a read-only archived version of wiki.centos.org

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


2023-09-11 07:23