El filtro de contenido antes de la cola no inyectará datos a Postfix

El filtro de contenido antes de la cola no inyectará datos a Postfix

He estado creando un filtro antes de la cola con Postfix en NodeJS para recuperar los datos de los correos salientes, eliminar los archivos adjuntos, cargarlos en un CDN e inyectar las URL en el correo saliente.

Hasta ahora, supongo que nada demasiado complicado, ya que Postfix admite hacer esto a través delFiltro de contenido antes de la cola.

Después de implementar el filtro y seguir la documentación de Postfix, puedo recuperar los correos salientes y enviarlos de vuelta a Postfix.

Sin embargo, Postfix no reconoce el correo entrante a través de la configuración específica del "proxy" como si se hubiera inyectado de nuevo a través del filtro de contenido anterior a la cola. Aún así lo agregará a la cola y lo enviará correctamente, pero al principio no cerrará la sesión abierta por el cliente SMTP.

He estado observando este error durante algunas semanas y navegué por toda la web en busca de respuestas, pero este tema no parece estar muy documentado. Vi que Milters podría ser otra solución al problema, pero parece más complicado que simplemente usar SMTP para comunicarse con Postfix.

Aquí están los archivos de configuración:

maestro.cf:

submission inet n                               -                               -                               -      smtpd
        -o syslog_name=postfix/submissions
        -o smtpd_proxy_filter=127.0.0.1:9830
        -o smtpd_proxy_ehlo=mail.clebard.cloud
        -o smtpd_proxy_options=speed_adjust
        -o smtpd_tls_auth_only=no
        -o smtpd_tls_dh1024_param_file=${config_directory}/dh2048.pem
        -o smtpd_enforce_tls=no
        -o smtpd_tls_security_level=may
        -o smtpd_sasl_auth_enable=yes
        -o smtpd_client_restrictions=permit_sasl_authenticated,reject
127.0.0.1:9821  inet    n                       -                       -                       -                      smtpd -v
        -o smtpd_authorized_xforward_hosts=127.0.0.0/8
        -o syslog_name=postfix/afterfilter
        -o smtpd_enforce_tls=no
        -o smtpd_tls_auth_only=no
        -o smtpd_tls_dh1024_param_file=${config_directory}/dh2048.pem
        -o smtpd_enforce_tls=no
        -o smtpd_tls_security_level=may
        -o smtpd_sasl_auth_enable=yes
        -o smtpd_client_restrictions=permit_sasl_authenticated,reject

(Esta configuración no es segura para ser utilizada en producción, pero intenté eliminar la mayor complejidad posible)

127.0.0.1:9830es el servidor de filtrado de contenido antes de la cola y configuré Postfix para escuchar los correos devueltos 127.0.0.1:9821con la segunda configuración del archivo.

Esto es lo que envío a Postfix usando mi filtro:

EHLO localhost
AUTH PLAIN {token}
XFORWARD HELO={client_name} NAME={client_name} ADDR={client_addr} PROTO=SMTP
XFORWARD IDENT={message_id}
MAIL FROM: {sender}
RCPT TO: {recipient}
DATA
...
.
QUIT

Aquí está el seguimiento de los registros de filtro: Registra cuando se envía un correo usando el filtro

Y esto es lo que he estado viendo en Postfix: proxy-reject: error de escritura del archivo de cola

Todos los comandos han sido detectados por Postfix cuando el filtro los envía, pero la data=0/1respuesta del correo entrante original indica que los DATOS no han sido recibidos. De hecho, el error parece ocurrir cuando el submissionproceso intenta agregar el contenido del proxy a la cola.

Espero haber explicado todo claramente, ya que realmente necesitaría ayuda con esto...

información relacionada