我有一个带有 MySQL 和 dovecot 的 Postfix 虚拟设置。一切运行正常,目前唯一的问题是发送给 root 的邮件没有按应有的方式在本地传递。相反,Postfix 将发送给“root”的邮件扩展为“[电子邮件保护]“。由于没有虚拟邮箱[电子邮件保护],则无法投递:
Nov 17 03:20:26 xxx postfix/qmgr[16914]: E49903AB4045: from=<[email protected]>, size=783, nrcpt=1 (queue active)
Nov 17 03:20:26 xxx postfix/pipe[17901]: E49903AB4045: to=<[email protected]>, orig_to=<root>, relay=dovecot, delay=626, delays=625/0.01/0/0.17, dsn=4.1.1, status=SOFTBOUNCE (user unknown)
为了解决这个问题,我尝试了以下描述的方法
http://www.postfix.org/STANDARD_CONFIGURATION_README.html#some_local
并将根别名添加到我的 SQL 虚拟别名映射中:
| address | goto | domain | created | modified | active |
+---------------+------------------+---------------+---------------------+---------------------+--------+
| root | root@localhost | localhost | 2013-11-18 11:20:00 | 2013-11-18 11:20:00 | 1 |
至少现在它已经有所改变,但它仍然不起作用,因为域名似乎扩展为[电子邮件保护]现在:
Nov 18 11:36:39 xxx postfix/qmgr[16914]: 0741763B6001: from=<[email protected]>, size=316, nrcpt=1 (queue active)
Nov 18 11:36:39 xxx postfix/smtp[30046]: 0741763B6001: to=<[email protected]>, orig_to=<root>, relay=none, delay=11, delays=11/0/0.52/0, dsn=4.4.6, status=SOFTBOUNCE (mail for localhost.example.com loops back to myself)
来自我的main.cf:
mydestination = localhost.localdomain, localhost
mydomain = example.com
myhostname = mail.example.com
myorigin = $mydomain
smtpd_recipient_restrictions = permit_mynetworks,reject_non_fqdn_recipient,permit_sasl_authenticated,reject_unauth_destination,reject_rbl_client zen.spamhaus.org,pcre:/etc/postfix/dspam_filter_access
virtual_alias_maps = mysql:/etc/postfix/sql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/sql_virtual_domain_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/sql_virtual_mailbox_maps.cf
据我了解,Postfix 应该检查 sql_virtual_alias_maps,将邮件转发至root
,root@localhost
并尝试在本地投递。
我做错了什么以及如何让 Postfix 在本地传递这些根邮件?
答案1
好的,我修复了它。问题出在参数
append_dot_mydomain
默认设置为yes
。设置后
append_dot_mydomain = no
,在 中main.cf
,它正常运行。
答案2
看起来它正在尝试转发给自己,您是否恰好将数据库中的“goto”字段定义为转发地址?如果是这样,请尝试删除该转发,看看是否有帮助