Sendmail

如何讓 sendmail 保留 .forward 的詳細資訊?

  • May 24, 2013

我有一個正常的 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。

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