Chinaunix首页 | 论坛 | 博客
  • 博客访问: 579827
  • 博文数量: 142
  • 博客积分: 10016
  • 博客等级: 上将
  • 技术积分: 1835
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-10 14:30
个人简介

工作中~

文章分类

全部博文(142)

文章存档

2009年(25)

2008年(117)

我的朋友

分类:

2008-10-29 09:53:15

外部数据库
———  《postfix权威指南》学习笔记   lxq007

相较于平常的DB索引文件,外部数据库会降低Postfix的效率。一般而言,如果不是非得用数据库不可,最好还是使用Postfix的标准查询表。

   
postconf的"-m"选项,可查看Postfix支持哪些类型的查询表
# postconf -m
btree
cidr
environ
hash
mysql
nis
proxy
regexp
sdbm
static
tcp
unix

一、MYSQL

MYSQL是一套"关系数据库管理系统"(Relational Database Management System,RDBMS),让用户能以“结构化查询语言”(Structured Query Language,SQL)来查询、管理数据。

MYSQL配置
任何可使用Postfix查询表的参数,都可以用MYsql数据库来达成相同效果,前提是你必须知道哪些字段含有你所需的信息。Mysql map的指定方式,如下:
virtual_mailbox_maps = mysql:/etc/postfix/-mailbox-maps.cf

Mysql 参数
举例,MYsql配置文件一般如下:
# nano /etc/postfix/-mailbox-maps.cf
user = maildatabse
password = mail12345
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM view_users WHERE email='%s'



  图:SQL语句的结构   显示了各个MySQL参数与SQL语句结构的对应关系

hosts
    Mysql所在的主机名称或IP地址。如果MYSQL与Postfix位于同一台机器,你可以使用Unix指
    出Unix-domain socket的完整路径。如:
    hosts = unix:/tmp/mysql.sock, db.example.com, 192.168.1.70
    除非你有多台备用的mysql server,否则列出一个位置就够了。Postfix会依照你列出的顺序
    逐一查询,直到查询成功。
user
     用于登录 Mysql server的账户名称。此帐户必须是有效的Mysql server账户(不是mysql所在主机
     的系统帐户),而且要有足够的权限来查询所需数据。
password
     用于登录Mysql server的密码
dbname
     要被查询的数据库的名称。
table
     要被查询的数据表的名称。 
select field
     含有“对应值” 的字段的名称。
where field
     含有“索引值” 的字段的名称。
additional_conditions
     额外的筛选条件。


架设虚拟网域
代管许多虚拟网域的大型服务器系统,经常将网域名称、账户数据等信息记录在Mysql数据库。

为了支持虚拟网域,我们建了一个customer数据库,并将所有虚拟地址都记录在此数据库中的E-mail_address数据表中。构成此表的字段如下:

domain   虚拟网域名称。
mail address  用户的公关邮件地址。从外界寄到此地址的邮件,会被投递到虚拟邮箱。
mailbox  虚拟邮箱的相对路径(virtual_mailbox_base所指的路径)与文件名。
         如果想使用maildir格式的邮箱,请在文件名末端加一个“/”符号。


二、LDAP
  LDAP是用于访问目录(directory)信息的协议。LDAP目录是一种层次结构式的树状数据结构,通常用于存储人事信息。你必须了解LDAP的运作原理以及你的LDAP目录的组织结构,才能了解如何在Postfix使用LDAP。

具体配置请查阅《postfix权威指南》或在GOOGLE上找吧。



阅读(1297) | 评论(0) | 转发(0) |
0

上一篇:Postfix 学习笔记

下一篇:Postfix 支持工具

给主人留下些什么吧!~~