基本上我遵循这个教程: https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql
我的问题始于第一次测试 Postfix。
后配置-m
postconf: warning: /etc/postfix/dynamicmaps.cf: file is owned or writable by non-root users -- skipping this file
btree
cidr
environ
fail
hash
inline
internal
memcache
nis
pipemap
proxy
randmap
regexp
socketmap
static
tcp
texthash
unionmap
unix
看起来我忘记安装 postfix-mysql 但是当我再次尝试安装时我得到:
postfix-mysql is already the newest version (3.1.0-3).
postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
postmap: warning: /etc/postfix/dynamicmaps.cf: file is owned or writable by non-root users -- skipping this file
postmap: fatal: unsupported dictionary type: mysql
所有 .cf 文件看起来都像教程中的那样。对于 mysql-* 配置文件,我设置了所有者和组“postfix”。
任何想法?
编辑:
就我而言,我已经安装了 postfix-mysql。
答案1
好吧,在花了很多时间解决这个问题之后,我终于找到了解决办法:
Postfix 尝试读取文件 :/etc/postfix/dynamicmaps.cf
但无法读取,因为权限错误。我设置了新所有者并修改权限解决了我的问题。
chown root.root /etc/postfix/dynamicmaps.cf
chmod 640 /etc/postfix/dynamicmaps.cf
也许这个答案会对别人有所帮助。
答案2
正如其他答案中所说,修改/etc/postfix/dynamicmaps.cf
方式如下:
# Postfix dynamic maps configuration file.
#
#type location of .so file open function (mkmap func)
#==== ================================ ============= ============
tcp /usr/lib/postfix/dict_tcp.so dict_tcp_open
sqlite /usr/lib/postfix/dict_sqlite.so dict_sqlite_open
#mysql /usr/lib/postfix/dict_mysql.so dict_mysql_open
mysql /usr/lib/postfix/postfix-mysql.so dict_mysql_open
对我有用。
答案3
编辑/etc/postfix/dynamicmaps.cf
添加绝对路径postfix-mysql.so
在我的情况下,这条路径是/usr/lib/postfix/postfix-mysql.so