我想让 postfix 将邮件中继到我的 dovecot,它在同一主机上运行。我的用户在 /etc/dovecot/users 下的 dovecot 的 passwd 文件中定义,如下所示:
[email protected]:{PLAIN}pw.:10000:10000::/srv/mail/domain/user::
当收到没有系统用户的用户的邮件时,我收到以下错误:
NOQUEUE: reject: RCPT from sender[ip]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown in relay recipient table;
我配置 postfix 来中继我的邮件,如下所示:
mydestination = $myhostname, localhost
relay_domains = btree:/etc/postfix/relay_domains
transport_maps = btree:/etc/postfix/transport, $relay_domains
address_verify_map = btree:$data_directory/verify_cache
local_recipient_maps =
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, reject_unknown_recipient_domain, reject_unverified_recipient
其中relay_domains和transport的内容为:
domain.tld lmtp:[127.0.0.1]
这是我已经尝试过的:
- 从 mydestination 中删除我的域名
- 将 local_recipient_maps 设置为 $relay_domains
- 将 local_recipient_maps 设置为空
- 从parent_domain_matches_subdomains 中删除relay_domains
我不太明白 postfix 的收件人表在哪里。根据我的理解,它不应该在我的配置中使用它。据我所知,使用 smtpd_recipient_restrictions,postfix 应该向 dovecot 发送一封探测邮件,以检查地址是否存在,如果存在则应转发。
我非常感谢任何帮助解决这个问题的人。
你可以在这里找到我完整的 postconf:https://pastebin.com/jGeUmCxg
答案1
通过使用 packetmanager 重新安装 postfix 解决了这个问题。显然做了一些我没有意识到的改变。