Como deixar o sendmail preservar mais detalhes para .forward?

3

Eu tenho uma instalação normal do sendmail. Um usuário tem .forward assim:

# cat ~elrond/.forward
elrond@somewhere
# sendmail -bv elrond+extra@localhost
elrond@somewhere...  deliverable: mailer esmtp, host somewhere., user elrond@somewhere

Observe que +extra está perdido.

O que preciso alterar para tornar o +extra preservado? O% usual%3 para hashmaps não funciona no .forward .

    
por Elrond 22.05.2013 / 16:21

3 respostas

1

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.

    
por 22.05.2013 / 18:43
1

Você usa o procmail como o programa de e-mail local do sendmail [ FEATURE(local_procmail) ]
= > você pode redirecionar / encaminhar mensagens em ~ elrond / .procmailrc com $ 1 mantendo a parte detalhada.

Desculpe, mas meu conhecimento do procmail é insuficiente para fornecer receita CONFIÁVEL, por exemplo. algumas verificações de sanidade de $ 1.

ATENÇÃO: mensagem para ambos elrond + 1 e elrond + 2 serão passados como duas mensagens separadas para procmail.

    
por 22.05.2013 / 21:53
0

Você já pensou em permitir que os usuários usem a peneira (dovecot)?

Parece que você pode usar o exemplo abaixo com redirect em vez de fileinto link

    
por 24.05.2013 / 20:59

Tags