Postfix
後綴:如何(以及為什麼)設置 /etc/aliases.db?
我已經設置了 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