例1
为虚拟用户设置 SMTP 发信认证
1.     修改dovecot配置文件
  mail_location = maildir:/mailbox/%d/%n/Maildir
auth default {
    mechanisms = plain
    passdb sql {
        args = /etc/dovecot-mysql.conf
    }
    userdb sql {
        args = /etc/dovecot-mysql.conf
}
注意:这几行都不是连续的,建议查找修改,或者手工添加。
2. 编辑 /etc/dovecot-mysql.conf                
driver = mysql
connect = host=localhost dbname=extmail user=extmail password=extmail
default_pass_scheme = CRYPT
password_query = SELECT username AS user,password AS password FROM mailbox WHERE username = '%u'                           
user_query = SELECT maildir, uidnumber AS uid, gidnumber AS gid FROM mailbox WHERE username = '%u'
注意:该文件默认不存在,但有模板文件(在 /etc/ 目录下,或者 /usr/share/doc
例2
部署 Extmail 邮件使用界面
1. 编译安装相关的 perl 依赖包
Unix-Syslog-1.1.tar.gz  DBI-1.607.tar.gz  DBD-mysql-4.011.tar.gz
注意:安装 DBD-mysql 的时候需要知道参数,否则报错(perl Makefile.PL --libs="-L/usr/local/mysql/lib/mysql -lmysqlclient -lz" --cflags=-I/usr/local/mysql/include/mysql --testhost=127.0.0.1 )。
2 . vi  修改 extmail 的配置文件: webmail.cf
SYS_CONFIG = /usr/local/apache2/htdocs/extmail/
SYS_LANGDIR = /usr/local/apache2/htdocs/extmail/lang
SYS_TEMPLDIR = /usr/local/apache2/htdocs/extmail/html
SYS_MAILDIR_BASE = /mailbox
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail                     
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /tmp/mysql.sock
例3
部署 Extman 邮件 Web 管理平台
1. 编译安装相关的依赖包
GD-2.41.tar.gz File-Tail-0.99.3.tar.gz  rrdtool-1.2.23-3.el5.i386.rpm  rrdtool-perl-1.2.23-3.el5.i386.rpm
2       安装 extman 套件,并修改其配置文件
vi /usr/local/apache2/htdocs/extman/webman.cf     
SYS_CONFIG = /usr/local/apache2/htdocs/extman/
SYS_LANGDIR = /usr/local/apache2/htdocs/extman/lang
SYS_TEMPLDIR = /usr/local/apache2/htdocs/extman/html
SYS_MAILDIR_BASE = /mailbox
SYS_MYSQL_USER = webman
SYS_MYSQL_PASS = webman
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /tmp/mysql.sock
 
书上错误:191页:我的服务器要求身份验证.应去掉勾号
一.     配置虚拟用户支持 —— MySQL
1.     编辑 vi /etc/postfix/main.cf
……
#mydestination = $mydomain, $myhostname
virtual_mailbox_base = /mailbox
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_uid_maps = static:1000
virtual_gid_maps = static:1000
2.     建立虚拟用户映射表文件
复制 extman 软件包中 docs 子目录下的样例文件
进入  /usr/src/extman-0.2.5/docs
cp mysql_virtual_* /etc/postfix
3.      
二.     配置虚拟用户支持 —— SMTP 认证
1. 编译安装 courier-authlib 软件
解压软件包,进入相应目录,然后开始安装
./configure --prefix=/usr/local/courier-authlib
 --without-stdheaderdir --with-authmysql
 --with-mysql-libs=/usr/local/mysql/lib/mysql
 --with-mysql-includes=/usr/local/mysql/include/mysql
然后make;make install,
然后执行“make install-configure”命令后将生成默认配置文件“ authmysqlrc”和“ authdaemonrc”,作用分别为
p authdaemonrc :主配置,设置使用的认证方式
p  authmysqlrc :数据库配置,设置连接地址、查询方式等
2. 修改主配置, authdaemonrc 文件
建议只保留 authmysql 认证方式—认证速度快
cd /usr/local/courier-authlib/etc/authlib/
编辑 authdaemonrc   修改下面两行
……
authmodulelist="authmysql"
authmodulelistorig="authmysql"
3. 修改数据库配置, authmysqlrc 文件
      编辑 authmysqlrc
MYSQL_SERVER localhost   mysql 服务器位置
MYSQL_USERNAME   extmail  mysql 登陆用户名
MYSQL_PASSWORD   extmail  mysql 登陆密码
MYSQL_SOCKET   /tmp/mysql.sock   sock 文件位置
MYSQL_DATABASE   extmail        mysql 数据库名字
MYSQL_USER_TABLE   mailbox     mysql 用户邮箱存储的表的名字
……
MYSQL_HOME_FIELD concat('/mailbox/',homedir) 用户的宿主目录完整路径
……
MYSQL_MAILDIR_FIELD concat('/mailbox/',maildir) 用户的完整邮件存储路径
4. 其他调整
1 )修改 smtpd.conf 配置文件 改为通过 authdaemond 进行认证
vi /usr/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
authdaemond_path: /usr/local/courier-authlib/var/spool/authdaemon/socket
 
2) 调整 socket 目录权限
chmod  -R 755/usr/local/courier-authlib/var/spool/authdaemon
3) 添加库文件搜索路径
   ~]# vi /etc/ld.so.conf
……
/usr/local/courier-authlib/lib/courier-authlib
ldconfig
5. 启动 counrier-authlib 服务程序
cp /usr/src/courier-authlib-0.60.2/courier-authlib.sysvinit /etc/init.d/courier-authlib
chmod 755 /etc/init.d/courier-authlib
service courier-authlib start
三.     配置虚拟用户支持 —— dovecot
1. 调整 dovecot.conf 配置文件
   vi /etc/dovecot.conf
mail_location = maildir:/mailbox/%d/%n/Maildir 修改邮箱存储 位置
……
auth default {
    mechanisms = plain
    passdb sql {
        args = /etc/dovecot-mysql.conf 用户名及密码查询在独立的配置文件中指定
    }
    userdb sql {
        args = /etc/dovecot-mysql.conf
}
2. 创建数据查询配置文件
vi /etc/dovecot-mysql.conf                
driver = mysql
connect = host=localhost dbname=extmail user=extmail password=extmail
default_pass_scheme = CRYPT
password_query = SELECT username AS user,password AS password FROM mailbox WHERE username = '%u' 查询用户密码的语句                           
user_query = SELECT maildir, uidnumber AS uid, gidnumber AS gid FROM mailbox WHERE username = '%u' 查询用户身份的语句
3. 建立邮箱目录,并调整权限
mkdir -p /mailbox/extmail.org/postmaster/Maildi
chown -R postfix:postfix /mailbox
4. 重新启动 dovecot 服务
kill `pgrep  dovecot` ; dovecot