Teste FEATURE(preserve_local_plus_detail)
no seu arquivo .mc
e recompile seu código%.
Isso modifica o conjunto de regras 5 ( .cf
). Isso pode causar efeitos colaterais (ou seja, se o seu mailer local não suportar + detalhes).
Se isso afetar negativamente sua pesquisa de aliases, talvez localaddr
seja para você, essa é uma opção de tempo de construção (ou seja, não _FFR_ALIAS_DETAIL
), mas não posso dizer que testei. Não recomendado; -)
Se isso falhar, a única maneira de fazer qualquer coisa como você exigir com apenas arquivos .cf
controlados pelo usuário é verificar se .forward
inclui um caminho que tenha um componente confFORWARD_PATH
. Este deve ser o padrão desde pelo menos 8.12:
O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
Isso permitirá que os usuários criem, digamos, $h
para controlar onde o email endereçado "usuário + extra" está:
$ 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
(Você pode ver os arquivos de encaminhamento sendo manipulados pela função ~/.forward.extra
- não tem noção de expansão quando lê os arquivos.)
include()
, como sugerido em outro lugar, é provavelmente o melhor caminho a percorrer, se você for do tipo de script, poderá coletar periodicamente os arquivos FEATURE(virtusertable)
do usuário e construir um master virtusertable.