在 Ubuntu 服务器上使用 MySQL 后端时,我遇到了 postfix 和 SASL 的一些问题。
认证日志
Oct 12 13:25:21 lvps92-60-121-255 postfix/smtpd[28508]: sql auxprop plugin using mysql engine
Oct 12 13:25:21 lvps92-60-121-255 postfix/smtpd[28508]: SQL engine 'mysql' not supported
Oct 12 13:25:21 lvps92-60-121-255 postfix/smtpd[28508]: auxpropfunc error no mechanism available
Oct 12 13:25:21 lvps92-60-121-255 postfix/smtpd[28508]: _sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: sqlite
/etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login cram-md5 digest-md5
log_level: 7
allow_plaintext: true
auxprop_plugin: mysql
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: postfix
sql_passwd: (password)
sql_database: postfix
sql_select: select password from mailbox where username = '%u@%r'
由于 POP/IMAP 配置有效并且可以连接,所以我有点困惑。我能找到的与此错误有关的唯一参考是每行末尾的尾随空格,我已经检查过了。我使用的是 Ubuntu。有人知道我哪里出错了吗?
编辑:看起来我在(其中有一个 libsqlite.so 和一个 libsql.so)中缺少一个合适的libmysql.so
(猜测名称) 。我该如何获取它?/usr/lib/sasl2
答案1
smtpd.conf 中有错误,它应该是这样的
pwcheck_method: auxprop
mech_list: PLAIN LOGIN CRAM-MD5
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: localhost
sql_user: postfix
sql_database: postfix
sql_passwd: password
sql_select: select password from mailbox where username = '%u@%r'
log_level: 3
注意:auxprop_plugin 应该是sql而不是 mysql
您只需安装 libsasl2-modules-sql
# apt-get install libsasl2-modules-sql
答案2
您需要 (Cyrus) SASL 的 MySQL 包。在 Debian 派生发行版中,它被命名为libsasl2-modules-sql
。
这是因为它与 Postfix 的 MySQL 接口无关。
答案3
您可能需要安装该软件包postfix-mysql
(或类似的东西,这是 Debian 的名称)。