Sendmail
如何讓 sendmail 保留 .forward 的詳細資訊?
我有一個正常的 sendmail 安裝。使用者有
.forward
這樣的:# cat ~elrond/.forward elrond@somewhere # sendmail -bv elrond+extra@localhost elrond@somewhere... deliverable: mailer esmtp, host somewhere., user elrond@somewhere
請注意,
+extra
失去了。我需要更改什麼
+extra
才能保留?通常%3
的 hashmaps 在.forward
.
嘗試
FEATURE(preserve_local_plus_detail)
在您的.mc
文件中,並重建您的.cf
. 這會修改規則集 5 (localaddr
)。它可能會導致副作用(即,如果您的本地郵件不支持 +detail)。如果這對您的別名查找產生不利影響,那麼也許
_FFR_ALIAS_DETAIL
適合您,這是一個建構時間(即不是.cf
)選項,但我不能說我已經測試過了。不建議 ;-)如果做不到這一點,我能看到只使用使用者控制的文件執行任何您需要的操作的唯一方法
.forward
是檢查您是否confFORWARD_PATH
包含具有$h
組件的路徑。這應該是至少從 8.12 開始的預設值:O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
這將允許使用者創建說,
~/.forward.extra
以控制“使用者+額外”地址電子郵件的去向:$ sendmail -v -d27.2 -bv elrond+foo alias(elrond+foo) alias(elrond+*) alias(elrond) alias(elrond) forward(elrond+foo) include(/home/elrond/.forward.thishost+foo) include(/home/elrond/.forward+foo) include(/home/elrond/.forward.thishost) include(/home/elrond/.forward) elrond+foo... deliverable: mailer local, host foo, user elrond
(您可以看到該
include()
函式正在處理轉發文件——它在讀取文件時沒有擴展的概念。)
FEATURE(virtusertable)
正如其他地方所建議的那樣,可能是一個更好的方法,如果你是腳本類型,你可以~/.xforward
定期收集使用者文件並建構一個主 virtusertable。