我已经根据虚拟设置和 LMTP 传输的文档配置了 Postfix 和 Dovecot:
https://www.postfix.org/VIRTUAL_README.html
/usr/local/etc/postfix/main.cf:
virtual_transport = lmtp:unix:/path/name/to/socket
virtual_mailbox_domains = example.com example2.com
virtual_mailbox_maps = hash:/usr/local/etc/postfix/vmailbox
virtual_alias_maps = hash:/usr/local/etc/postfix/virtual
/usr/local/etc/postfix/vmailbox:
[email protected] whatever
[email protected] whatever
/usr/local/etc/postfix/virtual:
[email protected] [email protected]
/usr/local/etc/dovecot/users:
[email protected]:{SHA512-CRYPT}$6$/kTQFQ[...]/::::::userdb_quota_rule=*:storage=2048M
[email protected]:{SHA512-CRYPT}$6$/kTQFQ[...]/::::::userdb_quota_rule=*:storage=2048M
如果我从外部地址发送电子邮件,它将被接受并通过 LMTP 正确传输。通常一切都按预期运行。
为了保留此示例,当我从[电子邮件保护]通过经过身份验证的 SMTP 提交至[电子邮件保护],它总是抛出:
<[email protected]>: host mx.example.com[private/dovecot-lmtp] said: 550 5.1.1
<[email protected]> User doesn't exist: [email protected] (in reply
to RCPT TO command)
我知道这个错误是由 Dovecot 的 LMTP 引发的。我不明白的是为什么从未经身份验证的外部地址发送一切都正常,而我自己发送经过身份验证的地址却不行。
我很感谢任何指点。如果需要更多配置数据,请告诉我,我会添加它。
答案1
在 Postfix 中master.cf
有一个我不记得做过的设置:
-o receive_override_options=no_address_mappings
根据 Postfix 文档,其作用正如其名称所示:
禁用规范地址映射、虚拟别名映射扩展、地址伪装和自动 BCC(密件抄送)收件人。这通常在外部内容过滤器之前指定。
这显然行不通。一旦删除,它现在似乎可以工作了。