usando sendmail apenas com usuários que não são do sistema

usando sendmail apenas com usuários que não são do sistema

Preciso usar o sendmail sem nenhum usuário do sistema.

O único problema que ainda existe na minha configuração é que FEATURE(virtusertable)quero um usuário final do sistema no RHS na minha virtusertable assim:

@domain.tld           [email protected]
[email protected]       systemuser

O problema é que NÃO existe tal usuário do sistema e quero que todos os e-mails para @domain.tld sejam entregues ao meu lda (procmail e depois dovecot-lda), que é capaz de lidar com endereços de e-mail completos como usuários.

Eu já tentei coisas como

define(`_VIRTUSER_STOP_ONE_LEVEL_RECURSION_', `true')dnl
define(`_NEED_MACRO_MAP_',`1')dnl

mas isso também não ajuda.

Já temos uma solução feia com o script procmail que está lendo o virtusertable, mas adoraríamos que isso fosse tratado pelo sendmail para que qualquer e-mail enviado que não tenha RHS e/ou usuário no lda seja devolvido. Além disso, usar dovecot-lda é lda direto no sendmail também não é uma opção em nossa configuração. :(

Qualquer ajuda é bem-vinda!

Responder1

Dê uma olhadaPerguntas frequentes sobre o Sendmail 3.29- "Como posso adicionar um cabeçalho especificando o destinatário real quando vários usuários em um domínio virtual vão para uma única caixa de correio?"

IMHO, ele pode ser facilmente adaptado para entregar o que você deseja - fornece todos os ganchos necessários.

A propósito, você pode usar a entrada virtusertable "@domain.tld" para erroro mailer selecionado. Isso permitirá que você rejeite mensagens para usuários virtuais não listados no virtusertable.

@domain.tld           error:nouser No such user here
[email protected]       systemuser+%1
[email protected]        systemuser+%1

Você também pode consultarhttps://www.sendmail.com/sm/open_source/tips/virtual_hosting/

Responder2

Acabei resolvendo isso de duas maneiras:

a) Patching libsm/mbdb.ce sendmail/recipient.cpara ter uma pesquisa adicional na tabela de usuários dovecot. Para que isso funcionasse, foi necessário um pequeno ajuste com LOCAL_RULE_0.

b) Andrzej me indicou uma pergunta semelhante sobre stackoverflow para solução com mailertable e arquivo de acesso. Seguindo essa ideia encontrei uma solução ainda mais fácil para ter tudo que precisamos:

tabela virtual:

@domain.tld              user_domain_tld
[email protected]          user_another_tld

apelido:

user_domain_tld: "|/bin/procmail -a [email protected]"
user_another_tld: "|/bin/procmail -a [email protected]"

É bom ter a solução a) porque altera a sintaxe aceita no virtusertable e é necessário verificar apenas um arquivo ao longo do tempo, onde a solução b) vence pela maneira fácil de alcançá-lo, que além disso é mais compatível com versões futuras do sendmail. Depois de todo o trabalho, utilizo a solução a), mas vou mudar para a solução b) depois do natal ;)

informação relacionada