[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