Postfix

後綴:如何(以及為什麼)設置 /etc/aliases.db?

  • June 29, 2020

我已經設置了 postfix 和一個本地使用者myuser

一封電子郵件myuser@mydomain.com到達沒有問題,所以基本的後綴設置很好。

然後我設置了虛擬別名:

mylongname@mydomain.com    myuser@mydomain.com

在 main.cf 中:

mydestination: mydomain, localdomain
virtual_alias_maps = hash:/path_to_virtual_aliases

我還創建了數據庫postmap /path_to_virtual_aliases

當我向 發送電子郵件時mylongname@mydomain.com,我收到此錯誤:

postfix/local[2341]: error: open database /etc/aliases.db: No such file or directory
postfix/local[2341]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
postfix/local[2341]: warning: hash:/etc/aliases is unavailable. open database /etc/aliases.db: No such file or directory
postfix/local[2341]: warning: hash:/etc/aliases: lookup of 'myuser' failed
postfix/local[2340]: F1D9C233E9A: to=<myuser@localdomain>, orig_to=<mylongname@mydomain.com>, relay=local, delay=2239, delays=2239/0.03/0/0.02, dsn=4.3.0, status=deferred (alias database unavailable)

當它已經是本機使用者時,為什麼它會嘗試查找 myuser?

如果它真的需要查找它,是否可以通過設置 /etc/aliases 來解決問題?如果是,該怎麼做?

我認為您混淆了兩種形式的混疊,它們在傳遞的不同階段使用。

  • virtual_alias_maps是 postfix 的一項功能,可以讓它完全重新路由電子郵件。它們在postfix 決定如何處理電子郵件之前的階段使用,因此可用於將特定電子郵件重新路由到完全不同的電子郵件伺服器。
  • alias_maps是 posftix 本地傳遞的一項功能,它允許一個本地郵箱被別名為另一個本地郵箱。它們在 postfix 決定在本地傳遞電子郵件之後的一個階段使用,因此不能用於重新路由到另一台伺服器。 見這裡

描述: aliases(5) 表提供了一個系統範圍的機制來為本地收件人重定向郵件。重定向由 Postfix local(8) 傳遞代理處理。


當它已經是本機使用者時,為什麼它會嘗試查找 myuser?

這適用於所有本地使用者,並且在您接收virtual_alias_domains未涵蓋的郵件時非常有用。例如,將許多系統服務的電子郵件重定向到一個郵箱。


如果它真的需要查找它,是否可以通過設置 /etc/aliases 來解決問題?如果是,該怎麼做?

是的,只需創建一個空的然後使用postalias/etc/aliases填充/etc/aliases.db文件:

postalias /etc/aliases

引用自:https://unix.stackexchange.com/questions/595200