Esta é uma das limitações do filtro de conteúdo simples. Cite de documentação do Postfix
The first example is simple to set up, but has major limitations that will be addressed in a second example. Postfix receives unfiltered mail from the network with the smtpd(8) server, and delivers unfiltered mail to a content filter with the Postfix pipe(8) delivery agent. The content filter injects filtered mail back into Postfix with the Postfix sendmail(1) command, so that Postfix can deliver it to the final destination.
This means that mail submitted via the Postfix sendmail(1) command cannot be content filtered.
A solução está usando o filtro de conteúdo avançado . Ele usa o SMTP para falar com o postfix usando pipe. Como seu script atual não pode falar com o SMTP, você pode usar o smtpprox como descrito na documentação
For non-SMTP capable content filtering software, Bennett Todd's SMTP proxy implements a nice PERL/SMTP content filtering framework. See: http://bent.latency.net/smtpprox/.
Escrito em perl também, mas foi lançado há mais de dez anos. Além disso, Jesse Norell fez o mesmo no repositório do github .
Existe alguma maneira de todos os e-mails endereçados a domínios Postfix locais serem filtrados com um filtro pós-fila simples, independentemente de ter chegado de uma fonte local ou remota, sem nunca filtrar qualquer e-mail sendo enviado para domínios remotos (internet)?
O próprio postfix não consegue distinguir domínios locais / remotos ao executar content_filter
. A decisão do filtro de conteúdo foi feita antes do roteamento de e-mail do daemon de limpeza Uma alternativa é verificar manualmente o domínio em seu script perl.