A chave para resolver isso é entender como o processo postfix cleanup
manipula informações de cabeçalho ausentes. Na página man de limpeza:
The cleanup(8) daemon always performs the following transformations:
o Insert missing message headers: (Resent-) From:, To:, Mes-
sage-Id:, and Date:.
Uma antiga postagem na lista dá uma dica sobre a formatação da% inseridaFrom
headers:
The defaults are:
MAIL FROM address = UNIX login name
FROM: header = UNIX login name (GECOS information)
Como são as informações do cabeçalho que precisam ser alteradas ou reformatadas, usar header_checks
do postfix parece ser a solução óbvia. No entanto, isso não funciona. Ao ler a página do manual header_checks , há outra dica na seção BUGS
.
Message headers added by the cleanup(8) daemon itself are excluded from
inspection. Examples of such message headers are From:, To:, Mes-
sage-ID:, Date:.
Há outro tópico da lista de discussão com alguém tentando resolver o mesmo problema e eles acabam usando smtp_header_checks
. Não há muita documentação para smtp_header_checks
, mas, como o processamento é aplicado quando o correio é entregue via SMTP, ele pode ser usado para reescrever o From
cabeçalho adicionado por cleanup
.
Veja um exemplo de uma configuração /etc/postfix/smtp_header_checks
que alterará o endereço From
(cabeçalho) de cada mensagem de saída para LOCALHOST System <[email protected]>
:
/^From:.*/ REPLACE From: LOCALHOST System <[email protected]>
Por favor, note que eu não sou um especialista em regex, então você pode querer testar seu próprio regex em vez de confiar no que está acima.
Depois de adicionar smtp_header_checks
, a seguinte opção de configuração deve ser adicionada ao /etc/postfix/main.cf
:
smtp_header_checks = pcre:/etc/postfix/smtp_header_checks
Em seguida, recarregue a configuração do postfix (assumindo systemd
) e envie uma mensagem de teste:
sudo systemctl reload postfix
sendmail [email protected] << EOF
Subject: Test email to root.
Testing.
EOF