Ao enviar e-mail através de PHP mail() - o Postfix adiciona o seguinte cabeçalho:
Received: by myhost.mydomain.com (Postfix, from userid 48)
id XXXXXXXXXXX; Sun, 20 Nov 2011 21:22:13 +0100 (CET)
Existe uma maneira de remover a parte do ID do usuário, mas manter o resto? Então o resultado fica (se correto):
Received: by myhost.mydomain.com (Postfix)
id XXXXXXXXXXX; Sun, 20 Nov 2011 21:22:13 +0100 (CET)
O Postfix está rodando em localhost e é usado apenas para enviar mensagens do PHP através da função mail().
Uma pergunta semelhante sobre a remoção de todo o cabeçalhojá foi perguntado antes, mas não consigo descobrir como remover a parte do ID do usuário, mas mantenho o resto.
Responder1
Acho que você pode tentar algo como:
/etc/postfix/main.cf
header_checks = pcre:/etc/postfix/header_checks.pcre
/etc/postfix/header_checks.pcre
/^Received: by(.*) \(Postfix, from userid(.*)$/ REPLACE Received: by ${1}
Responder2
Você não deve editar as linhas recebidas em nenhum caso.
Principalmente eles são exigidos pela RFC 5321 e não podem ser manipulados. Em segundo lugar, são uma fonte valiosa para rastrear abusos.
Suponha que você envie e-mails apenas com PHP via Apache (userid 48), o que isso indica se você vir mensagens provenientes do userid 5000? Você está certo: um usuário ou script mal-intencionado está enlouquecendo. Você consegue rastrear esse problema com o ID do usuário removido?
Responder3
Agora você pode alterar apenas a primeira linha. Minha solução é com regexp
/etc/postfix/main.cf
header_checks = regexp:/etc/postfix/header_checks
/etc/postfix/header_checks
/^Received: by (.*) .*Postfix, from userid [0-9]+\)\s*id ([A-F[:digit:]]+)(.*) (.*)/ REPLACE Received: by $1 (some text) id $2$3 (EEST)
Você pode verificar o resultado (http://rubular.com/r/JH14xFTWL9)
ou
postmap -q "Received: by mail.xxxx.lt (Postfix, from userid 48) id 5F7CD1E148A Thu, 23 Oct 2014 15:55:08 +0300 (EEST)" regexp:/etc/postfix/header_checks