我正在尝试配置 Dovecot + Postfix + PostfixAdmin 以支持 postgresql。我成功配置了 postfix 以将电子邮件发送到我的域的别名,现在我想在我的服务器上配置实际的邮箱支持。我按照 dovecot 2 wiki 上的数据库支持配置选项进行操作(http://wiki.dovecot.org/AuthDatabase/SQL), dovecot 启动时没有出现错误,但在第一次尝试通过 IMAP 连接时,dovecot 在邮件日志中发出抱怨:
auth: Fatal: Unknown database driver 'pgsql'
我确信 dovecot 有 postgres 支持,这里是 dovecot --build-options 的输出:
Build options: ioloop=epoll notify=inotify ipv6 openssl io_block_size=8192
Mail storages: cydir dbox maildir mbox mdbox raw shared
SQL driver plugins: mysql postgresql sqlite
Passdb: checkpassword ldap pam passwd passwd-file shadow sql
Userdb: checkpassword ldap(plugin) nss passwd prefetch passwd-file sql
附加信息:
/etc/dovecot/conf.d/auth-sql.conf.ext
passdb {
driver = pgsql
# Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
args = /etc/dovecot/conf.d/dovecot-sql.conf.ext
}
对于驱动程序部分,我尝试了:“pgsql”、“postgresql”和“sql”,但总是出现错误。
/etc/dovecot/conf.d/dovecot-sql.conf.ext
connect = host=localhost dbname=postfix user=postfix password=secret
default_pass_scheme = CRYPT
password_query = SELECT userid as user, password FROM users WHERE userid = '%u'
user_query = SELECT '/home/'||home AS home, uid, gid FROM users WHERE userid = '%u'
你知道我遗漏了什么吗?谢谢。
答案1
在 CentOS 6 上,不仅需要安装 dovecot 包,还需要安装附加模块,在这种情况下,还需要包 dovecot-pgsql 来支持 postgresql。
/etc/dovecot/conf.d/auth-sql.conf.ext 中驱动程序行的正确语法是:
driver = sql
然后在 /etc/dovecot/conf.d/dovecot-sql.conf.ext 中指定正确的驱动程序
driver = pgsql