Relé de Postfix Baseado no Remetente Receptor

0

Qual é a melhor prática quando se tem que implementar este tipo de regras no Postfix?

  • E-mail enviado do local domain1.com , domain2.com para example.com , example1.com deve ser retransmitido para smtp.external.com .
  • E-mail enviado para todos os outros @example.com e example1.com devem ser retransmitida localmente.

Eu sei que há uma maneira de fazer um endereço de destinatário de filtragem de retransmissão usando transport_maps , mas também não sei como filtrar dependendo do endereço do remetente.

    
por Contertulio 05.01.2017 / 09:49

1 resposta

0

Existe uma maneira (embora não muito limpa na minha opinião), combinando-a com o parâmetro header_checks . Por exemplo:

header_checks = pcre:/etc/postfix/my_relays

Agora em /etc/postfix/my_relays :

/^From:.*asender\@domain1\.com/  smtp1:[host1.example.com]
/^From:.*anothersender\@domain2\.com/  smtp2:[host2.example.com]

As ações smtp1 e smtp2 são necessárias apenas se você precisar se autenticar nos servidores host1.example.com ou host2.example.com por senha, caso contrário, substituí-los pela palavra-chave smtp seria suficiente.

Se você precisar se autenticar nesses servidores, precisará definir o que é smtp1 e smtp2 no seu arquivo master.cf :

smtp1    unix  -       -       -       -       10       smtp
    -o smtp_sasl_password_maps=hash:/etc/postfix/smtp1.relay
smtp2    unix  -       -       -       -       10       smtp
    -o smtp_sasl_password_maps=hash:/etc/postfix/smtp2.relay

Como último passo, seus arquivos smtp[12].relay precisam incluir os parâmetros de autenticação para se conectar a esses hosts (eu observo que isso é necessário apenas se você precisar de autenticação).

[hostX.example.com]   userX:passwordX
    
por 15.01.2017 / 14:20