Postfix acepta correo en un puerto específico

Postfix acepta correo en un puerto específico

Tenemos algunos clientes que envían correo a través de nuestro servidor de correo. Para enviar el correo por lotes, reenviamos todo el correo en un puerto específico (en este caso 1025) a un script de aceptación que guarda los detalles en MySQL para el procesamiento por lotes. Cuando pruebo esto, funciona perfectamente, cuando el cliente lo prueba, funciona perfectamente; sin embargo, cuando envían desde su sistema Unica, parece que el correo pasa directamente por el script y entra en el flujo de correo. es posible?

Aquí están las líneas de master.cf

000.000.000.000:1025 inet n      -       -       -       0       smtpd
        -o mynetworks=hash:/etc/postfix/injector/networks
        -o content_filter=clientid:
        -o syslog_name=clientid
        -o smtpd_timeout=1800s

clientid  unix   -       n       n       -       0       pipe
        flags=q user=filter argv=/var/injector/inject.php clntid

¡Cualquier ayuda sería muy apreciada!

¡Gracias!

Respuesta1

Para poder diagnosticar el problema, primero debe comenzar a recopilar más datos. puede usar las opciones debug_peer_level y debug_peer_list en /etc/postfix/main.cf.

p.ej

debug_peer_list=UNICA.SERVIDOR.IP.DIRECCIÓN
debug_peer_level=2

(aumente el nivel de depuración aún más si eso no proporciona suficiente información)

Una vez que tenga esos datos, podrá saber con seguridad si el correo del sistema Unica realmente va a su filtro personalizado o no (y parece que no es así).

Respuesta2

SMTP pasa por el puerto 25 (ese es un estándar), por lo que cuando su cliente envía a través del sistema Unica, envía a ese puerto. Por su parte, el proceso smtpd que escucha en el puerto 25 no sabe nada sobre el script inject.php.

Su cliente debe enviar a través de un sistema que sea consciente de su uso de un puerto no estándar, ya sea un MTA (servidor SMTP) o un cliente de correo simple. O tienes que rediseñar tu configuración.

Sí, puedes eliminar la dirección (ver man 5 master).

Para aclarar un poco, dado que no vemos completamente su configuración, tal vez pueda obtener lo que desea (no probado). Si su cliente, o lo que sea, no envía a su puerto 1025, aparentemente puede enrutar su correo según la dirección o el dominio del remitente.

/etc/postfix/main.cf:
sender_dependent_relayhost_maps = /etc/postfix/my_special_client

/etc/postfix/my_special_client:
@example.com  127.0.0.1:1025

# postmap /etc/postfix/my_special_client
# postfix stop && postfix start

Respuesta3

Para una depuración realmente detallada, a veces hago un tcpdump y lo vuelvo a poner en etéreo para examinar la sesión SMTP exacta que tuvo lugar.

tcpdump -i any -s 1500 -w /tmp/some-file.dump host ip.of.your.client

información relacionada