我正在将我的邮件服务器从 Ubuntu 上的旧版 postfix (3.2.0) 迁移到 3.3.0。我通过 apt 安装,安装过程很顺利。我正在尝试设置我的MySQL 连接,将它们从我的旧系统复制到这个系统。
当我尝试运行 时遇到问题。我收到的错误是:postmap -q [email protected] mysql:aliases.cf
postmap: fatal: bad string length 0 < 1: aliases.cf_dbname =
有问题的文件(aliases.cf)很简单:
hosts = 127.0.0.1
user = postfix_user
password = hunter2
dbname = postfix_db
query = SELECT `destination`
FROM `mail_aliases`
WHERE
`alias_address` = '%u'
AND `domain` = '%d'
AND `active` = 1
我做了几件事来解决这个问题:
- 我尝试添加
options_file
,但options_group
没有帮助。 - 保留
options_file
并options_group
删除hosts
、、user
和`密码。无效 - 创建了一个哈希文件(平面文件),并且可以工作
- 向数据库中的地址发送了一封电子邮件(通过
sendmail
本地邮箱),但出现此错误:Sep 17 01:06:42 ec21234 postfix/cleanup[4230]: warning: mysql:/etc/postfix/virtual/aliases.cf lookup error for "[email protected]"
- 直接使用用户名和密码连接数据库非常有效。
我在谷歌上搜索了一下,没能找到任何有用的信息。我能找到的最接近的信息是这个结果仅当使用以下方式查看时才会加载Google 缓存。
答案1
看起来mysql
的参数postmap
需要路径。当我运行命令时,它起作用了。不确定路径相对于哪里。我尝试放入配置文件,但没有用。postmap -q [email protected] mysql:./aliases.cf
/
邮件日志仍显示存在查找错误。我仍需要那里的帮助。