Al enviar correo a través de PHP mail(), Postfix agrega el siguiente encabezado:
Received: by myhost.mydomain.com (Postfix, from userid 48)
id XXXXXXXXXXX; Sun, 20 Nov 2011 21:22:13 +0100 (CET)
¿Hay alguna manera de eliminar la parte del ID de usuario, pero conservar el resto? Entonces el resultado es (si es correcto):
Received: by myhost.mydomain.com (Postfix)
id XXXXXXXXXXX; Sun, 20 Nov 2011 21:22:13 +0100 (CET)
Postfix se ejecuta en localhost y solo se usa para enviar correo desde PHP a través de la función mail().
Una pregunta similar sobre la eliminación de todo el encabezadoSe me preguntó antes, pero no puedo entender cómo eliminar la parte del ID de usuario, pero conservar el resto.
Respuesta1
Creo que puedes probar 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}
Respuesta2
No editarás las líneas recibidas en ningún caso.
Principalmente son requeridos por RFC 5321 y no se les permite manipularlos. En segundo lugar, son una fuente valiosa para rastrear los abusos.
Supongamos que solo envía correos con PHP a través de Apache (ID de usuario 48), ¿qué le dice si ve mensajes provenientes del ID de usuario 5000? Tienes razón: un usuario o script malicioso se está volviendo loco. ¿Puedes realizar un seguimiento de este problema sin el ID de usuario?
Respuesta3
Ahora puedes cambiar solo la primera línea. Mi solución es con expresiones regulares.
/etc/postfix/main.cf
header_checks = regexp:/etc/postfix/header_checks
/etc/postfix/encabezado_checks
/^Received: by (.*) .*Postfix, from userid [0-9]+\)\s*id ([A-F[:digit:]]+)(.*) (.*)/ REPLACE Received: by $1 (some text) id $2$3 (EEST)
Puedes consultar el resultado (http://rubular.com/r/JH14xFTWL9)
o
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