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