Como posso configurar o sendmail para enviar para um destino diferente de recebimento de dados se uma mensagem for enviada de um remetente específico?

1

Eu tenho um servidor SendMail. Quero que o tráfego para domínios "especiais" seja redirecionado para um local diferente. Eu fiz isso basicamente considerando alguns domínios "locais" e usando alguma lógica de roteamento simples:

1) Se enviar para domínios especiais (por exemplo, DOMAINA.com ou DOMAINB.com), envie para 1.1.1.1.

dnl # define mail_hub to special route
define('MAIL_HUB','relay:[1.1.1.1]')dnl

dnl # define list of 'local' domains that will be forwarded to the mail hub
define('confCW_FILE','/etc/mail-tls/special_domains')dnl

2) Else send to 2.2.2.2

define('SMART_HOST','relay:[2.2.2.2]')dnl

Isso parece funcionar muito bem. Mas agora tenho um requisito para complicar a lógica:

1) Se o envio para domínios especiais (por exemplo, DOMAINA.com ou DOMAINB.com) e envelope remetente for NÃO sendo enviado do [email protected] , envie para 1.1 .1.1

2) Else send to 2.2.2.2

Existe uma maneira fácil de fazer isso (sem exigir um milter)?

    
por Mike B 28.01.2016 / 18:52

1 resposta

1

Você pode combinar duas receitas do sendmail.cf:

1) MailertableRuleSets - permite selecionar sendmail.cf conjunto de regras personalizadas para roteamento de e-mail via mailertable (roteamento personalizado pelo domínio do destinatário)
Aviso: requer algumas linhas patch de um dos arquivos usados para gerar sendmail.cf

"Conjuntos de regras Mailertable (sendmail)" por anfi (2004)

2) SmartTable - mostra como rotear com base no endereço do remetente do envelope ( $f )

"Mesa Inteligente (sendmail)" por anfi (1999,2002)

WARNING: sendmail keeps original sender address in $f when sending bounce messages
(AFAIR in "at once" delivery attempt).

    
por 29.01.2016 / 00:23