免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1530 | 回复: 0
打印 上一主题 下一主题

[Mail] Postfix MySQL Howto(中文版) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-08 17:51 |只看该作者 |倒序浏览
Postfix MySQL Howto

//--------------------------------------------------------------------------------------------//
译者:无尾熊(openfamp@gmail.com
时间:2004年10月14日
Postfix 版本 2.x

出处:http://blog.openfamp.com/index.p ... d=a_20051108_173907
//--------------------------------------------------------------------------------------------//

介绍

Postfix mysql 映射表类型允许你将 Postfix 挂接到一个 MySQL 数据库上。
该实现允许使用多个 mysql 数据库:只要你愿意,你可以一个用于 virtual(5) 表,一个
用于 access(5) 表,一个用于 aliases(5)。你可以为同一个数据库指定多台服务器,
这样 Postfix 可以在一台坏了后切换到另外一台好的服务器。

在繁忙的邮件服务器使用 mysql 映射表将产生大量的并发 mysql 连接,所以运行的
mysql 服务器就事先要有所准备。你可以通过使用 Postfix proxymap(8) 服务降低并发
mysql 连接的数量。

编译能支持 MySQL 的 Postfix

注意:在 Debian GNU/Linux 的 Postfix 上使用 MySQL,你需要做的只是安装
postfix-mysql 包,而不需要重新编译 Postfix。

Postfix MySQL 客户端利用了 mysql 客户端库,其能从以下地址获得:

   http://www.mysql.com/downloads/
   http://sourceforge.net/projects/mysql/

为了构建有 mysql 映射表支持的 Postfix,你将需要添加  -DHAS_MYSQL 和 -I 指出包含
mysql 头文件的目录,还有利用 AUXLIBS 给出 mysqlclient 库(还有 libm),比如:

   make -f Makefile.init makefiles
       'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include'
       'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'

然后,就运行 'make'。这需要 libz,压缩库。旧的 mysql 实现没有包括 libz。

使用 MySQL 表

一旦 Postfix 有了 mysql 的支持,你可以像下面一样在 main.cf 指定一个映射类型:

   alias_maps = mysql:/etc/postfix/mysql-aliases.cf

文件 /etc/postfix/mysql-aliases.cf 指定了大量的信息告诉 Postfix 怎样引用 mysql
数据库。完整的描述,请查看 mysql_table(5) 手册页。

例子: 本地别名(local aliases)

#
# 查询本地别名(local(8) aliases(5))的 mysql 配置文件
#

# 登陆到 mysql 服务器的用户名和密码
user = someone
password = some_password

# 服务器上的数据库名
dbname = customer_database

# 表格名
table = mxaliases

# 查询的构成,看下面
select_field = forw_addr
where_field = alias

# 你可以指定 additional_conditions 或者留空它
additional_conditions = and status = 'paid'

# 上面的变量将构造下面形式的查询:
#
# select forw_addr from mxaliases where alias = '$lookup' and status = 'paid'
#
# ( $lookup 将会被转义,所以,就算 $lookup 包含了单引号或其他的八进制字符也不会
# 有什么问题。)

附加的注释

MySQL 配置接口的安装允许多个 mysql 数据库:
只要你愿意,你可以使用一个用于虚拟表(virtual table),一个用于访问表(access
table)和一个用于别名表(aliases table)。

既然有多个邮件交换服务器的站点可以享受使用一个网络邮件数据库的便利,不过,为了
不引入一个单点错误到这个系统,我们包含了让 Postfix 使用多个主机来访问单个 mysql
映射的能力。站点建立了两个或多个 mysql 数据库的镜像都是可行的,使用随机的顺序来
尝试余下的主机。如果没有 mysql 服务器可用,邮件将被推迟直到至少一个主机是可用的


贡献者

* 初始版本由 IC 集团的 Scott Cotton 和 Joshua Marcus 贡献。
* Liviu Daia 修订了配置接口,同时添加 main.cf 中的配置特性。

[ 本帖最后由 jeffwu 于 2005-11-8 17:52 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP