A solução padrão é usar a opção header_checks . Isso funcionará , no entanto, se filtrarmos linhas recebidas em todos os e-mails recebidos e enviados (como isso acontecerá), poderemos perder os cabeçalhos Recebidos nos e-mails enviados para , o que pode ser importante para solucionar problemas. Para contornar este problema, aplicaremos o header_checks
somente ao e-mail que possivelmente não poderia ter sido enviado para nós - e-mail que foi enviado para a porta submissão (você é usando a porta de envio , não é? ).
Esta postagem explica como aplicar header_checks
exclusivamente à porta de envio. O que precisamos fazer é passar a opção cleanup_service_name para o serviço submissão que podemos configurar um novo serviço de limpeza, "subcleanup". A seção relevante de /etc/postfix/master.cf
pode ser assim:
submission inet n - - - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
-o cleanup_service_name=subcleanup
Agora podemos passar a opção header_checks
para o novo serviço de limpeza. Essa parte de /etc/postfix/master.cf
pode ser assim:
cleanup unix n - - - 0 cleanup
subcleanup unix n - - - 0 cleanup
-o header_checks=regexp:/etc/postfix/submission_header_checks
Finalmente, precisamos criar o arquivo /etc/postfix/submission_header_checks
, que conterá a regex que filtra as linhas de cabeçalho recebidas. Qual regex você coloca no arquivo depende se você tem smtpd_sasl_authenticated_header
set.
Se smtpd_sasl_authenticated_header
for yes
, use:
/^Received:.*\(Authenticated sender:/ IGNORE
Caso contrário, use:
/^Received:.*\(Postfix/ IGNORE
(Obrigado a Dominic P e Bryan Drewery por mostrar como lidar com o segundo caso).