Isso soará um pouco complicado e complexo, mas temos uma configuração muito ruim atualmente para e-mail em um dos ambientes de meus clientes.
Do sistema mais interno para o externo temos:
Exchange Server -> Sendmail Server -> McAfee Email Gateway -> OUTSIDE
Isso é um pouco ruim porque e-mails fora do escritório de destino externo (de alguém dentro do sistema para fora) não funcionam, eles são aparentemente capturados no McAfee Email Gateway e não são retransmitidos para fora.
O que estou tentando fazer é configurar um servidor Postfix como retransmissor E um servidor SMTP e, dependendo do que está sendo recebido:
- Enviar e-mail diretamente (usando SMTP, apenas para respostas de ausência temporária)
- Retransmita o correio para o servidor Sendmail, para o resto de suas funções de retransmissão, como normalmente aconteceria.
Isso então se pareceria um pouco com o seguinte:
Exchange Server -> Postfix Relay --- Out of Office messages only ---> OUTSIDE
|
All other mail
|
---> Sendmail Server/Relay ---> McAfee Email Gateway ---> OUTSIDE
Estou um pouco confuso sobre como configurar o Postfix para a opção de retransmissão seletiva. Existe alguém que possa dar alguma dica sobre como conseguir isso?
Eu vim com uma abordagem muito hackish para isso.
Essencialmente, coloquei um 'servidor' SMTP personalizado escrito em Python sendo executado entre o servidor Postfix e o servidor Exchange que realmente lida com o roteamento de retransmissão real . Está escrito em Python e é executado como superusuário na porta 25 (por causa das restrições de vinculação de porta).
Esse script Python processa a mensagem como faria normalmente, executando um e-mail do analisador de strings e, em seguida, lendo a linha de assunto para determinar para onde enviá-la e, em seguida, enviando a mensagem original, inalterada, para o servidor SMTP local do Postfix ( para ser enviado diretamente de saída) ou para o outro relé na rede. Até agora, parece estar funcionando.
Este é o código que uso para isso no lado do Python:
Configurei o Postfix para escutar SMTP em uma porta diferente. Na verdade, isso é o que acabou sendo feito, no
/etc/postfix/master.cf
meu servidor Ubuntu para isso, e são as duas linhas e como eu configurei o SMTPd no Postfix - observe que você pode usar qualquer porta numerada alta para qualquer outra porta para Postfix SMTPd, mas eu escolhi algo fácil:O script Python então encaminha os dados para port
6625
, e o SMTPd do Postfix roda lá; com isso feito, deixamos especificamente o Python determinar qual servidor SMTP ou retransmissão é o "próximo salto". Isso meio que quebra os cabeçalhos padrão "Recebido por", mas supostamente funciona bem com mensagens.Não tive problemas com minha solução e parece estar funcionando. Testes adicionais são necessários, mas esta 'solução' parece resolver o problema de roteamento de como rotear mensagens (direcionar SMTP para fora, ou através do resto dos relés) sem realmente mexer na configuração do Postfix.