我正在尝试使用 dbmail 创建自己的邮件服务器来存储电子邮件。我已经按照 postfix 的设置指南配置了 dbmail 来与 postfix 一起使用http://www.dbmail.org/dokuwiki/doku.php/setup_postfix但是当我重新启动 postfix 时,我收到以下警告:
* Starting Postfix Mail Transport Agent postfix
postconf: warning: /etc/postfix/main.cf: unused parameter: user
postconf: warning: /etc/postfix/main.cf: unused parameter: dbname
postconf: warning: /etc/postfix/main.cf: unused parameter: hosts
postconf: warning: /etc/postfix/main.cf: unused parameter: query=SELECT DISTINCT 1 FROM dbmail_aliases WHERE SUBSTRING_INDEX(alias, '@', -1) = '%s';
postconf: warning: /etc/postfix/main.cf: unused parameter: password
我不明白我做错了什么以及为什么参数未被使用。
答案1
您需要将此配置添加到名为的单独文件中虚拟邮箱地图。
请参阅文档:
Postfix 需要查找收件人域是否存在。否则,Postfix 将拒绝您的 DBMail 收件人,并显示“本地收件人表中的用户未知”错误。
为此,您需要在 Postfix 中启用 MySQL 或 PGSQL 模块并添加
virtual_mailbox_domains = mysql:/etc/postfix/sql-virtual_mailbox_domains.cf
在那之后创建文件并添加以下 MySQL 语句 (如果您使用 Postgres,请根据您的需要进行调整):
user = <SQL-username>
password = <SQL-password>
hosts = <SQL-host>
dbname = <SQL-database>
query = SELECT DISTINCT 1 FROM dbmail_aliases WHERE
SUBSTRING_INDEX(alias, '@', -1) = '%s';
总结:
1)创建文件:
nano /etc/postfix/sql-virtual_mailbox_domains.cf
2)将上面的 MySQL 语句添加到此文件
3)从 /etc/postfix/main.cf 中删除 MySQL 语句
4)添加到 /etc/postfix/main.cf 选项并保存更改:
virtual_mailbox_domains = mysql:/etc/postfix/sql-virtual_mailbox_domains.cf
5)重新加载配置或重新启动 Postfix:
service postfix reload
service postfix restart