Encaminhar apenas mensagens devolvidas para um servidor SMTP diferente

1

Eu tenho um servidor SMTP Postfix que envia e-mails transacionais de um serviço da web. Essas mensagens usam VERP para o caminho de retorno, então as devoluções voltam para um endereço como este:

[email protected]

Este servidor postfix em execução no e.mydomain.com é usado exclusivamente para enviar e-mails, não há caixas de correio locais, acesso POP ou IMAP e assim por diante. Somente sistemas na rede local podem retransmitir mensagens por meio dele.

Eu, então, tenho um aplicativo SMTP personalizado separado que processa apenas retornos em execução no mesmo servidor (e.mydomain.com), mas em uma porta diferente (8025). Ele descarta todas as mensagens que não estão indo para um endereço de devolução formatado corretamente. E-mails com endereços de devolução formatados corretamente são aceitos.

Quando uma rejeição é aceita, esse aplicativo personalizado consulta o usuário adequado no banco de dados com base no endereço de email de devolução e incrementa um contador de devolução. O principal serviço da Web enviará apenas emails transacionais para usuários cuja contagem de rejeições não ultrapasse um limite.

Minhas perguntas são estas:

  1. Seria melhor configurar meu servidor SMTP de rejeição (bounces.mydomain.com) para lidar com rejeições diretamente (e executar na porta 25)? Ou é melhor ter todos os retornos para o meu servidor postfix e, em seguida, fazer o postfix encaminhar apenas as rejeições para o aplicativo SMTP de rejeição?

  2. Se for melhor ter o postfix lidando com todas as mensagens recebidas, como configurá-lo para encaminhar apenas mensagens formatadas como o endereço acima para outro servidor SMTP, em execução em uma porta não privilegiada (8025)?

por Tauren 14.09.2010 / 04:25

2 respostas

1

Eu sempre reluto em colocar serviços em portas que eles normalmente não vivem - não por causa de uma deficiência de software, mas por causa de deficiências de pessoas. Um administrador de sistema que herda essa configuração tem que ser muito bom para rastrear a arquitetura de "onde os e-mails vão quando eles retornam", ou então sua documentação precisa ser bem clara (e fácil de encontrar).

Então, para responder sua primeira pergunta, minha sugestão é ter um servidor separado que lide com rejeições. Isso torna as coisas bem documentadas via dns, em vez de enterradas em um arquivo de configuração para o postfix.

Se você optar por ignorar esse conselho, utilizar os mapas de transporte do postfix permitirá que você faça isso. Por exemplo, adicionando isso ao main.cf:

transport_maps = regexp:/etc/postfix/transport

e usando algo assim em seu arquivo de transporte:

/bounce.*/      smtp:bounces.mydomain.com:8025

(não se esqueça de 'postmap / etc / postfix / transport' e 'postfix reload')

    
por 16.09.2010 / 18:33
0

Se o seu serviço 8025 apenas registrar os rejeitos por destinatário e descartá-los, você também pode executar os retornos através do Postfix e delegar toda a funcionalidade "banco de dados de devolução" em um serviço de política Postfix. Em vez de falar SMTP, o servidor de políticas precisa apenas analisar o protocolo trivial que o Postfix fala com ele.

    
por 15.09.2010 / 15:31