儘管虛擬用戶存在,Postfix/Dovecot 設定仍會拋出“用戶不存在”

儘管虛擬用戶存在,Postfix/Dovecot 設定仍會拋出“用戶不存在”

我已經根據虛擬設定和 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(密件副本)收件者。這通常是在外部內容過濾器之前指定的。

這顯然行不通。一旦刪除,它現在似乎可以工作了。

相關內容