Postfix canaliza correos electrónicos solo a ciertas cuentas de correo electrónico

Postfix canaliza correos electrónicos solo a ciertas cuentas de correo electrónico

He configurado postfix para ejecutar un script cuando se recibe un correo electrónico. El script se activa cada vez que se recibe un correo electrónico en postfix. Sin embargo, el problema es que se activa en todas las cuentas de correo electrónico en lugar de solo en una cuenta que agregué en el archivo de acceso de postfix. Aquí está mi configuración: maestro.cf

myhook unix - n n - - pipe flags=F user=www-data argv=/var/www/public_html/production/hook/hook.php ${sender} ${size} ${recipient}

smtp      inet  n       -       -       -       -       smtpd -o content_filter=myhook:dummy

Y aquí está miprincipal.cfarchivo:

smtpd_recipient_restrictions =check_recipient_access hash:/etc/postfix/access, permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

Aquí está el contenido de mi archivo de acceso:

robot@domain FILTER myhook:dummy

Después de realizar los cambios anteriores ejecuté:

postmap access
postfix reload

Aún así, todos los correos electrónicos se enrutan a ese script en lugar de solo aquellos que se envían a robot@dominio.

¿Me he perdido algo? He seguido este tutorial para configuraciones:

https://thecodingmachine.io/triggering-a-php-script-when-your-postfix-server-receive-a-mail

Respuesta1

ACTUALIZACIÓN: Descubrí que hay dos enfoques para esto.

Enfoque 1

Crearmapas_transporte:

/^robot@domain/ myhook:dummy /.*/ :

Esto obliga a que cualquier correo destinado a ir a robot@dominio vaya directamente al gancho. Todo lo demás se procesa normalmente.

Modificarprincipal.cfpara agregar:

transport_maps = regexp:/etc/postfix/transport_maps

No olvides correr postmap /etc/postfix/transport_mapsypostfix reload

Enfoque 2

Limitación: el correo que se entregue a robot@dominio a través del transporte local no se filtrará

Conseguí que esto funcionara usando unacceso_destinatarioarchivo así (tenga en cuenta que estoy usando la sintaxis regexp):

/^robot@domain$/ FILTER myhook:dummy /.*/ OK

Esto forzará que los correos electrónicos dirigidos a robot@dominio pasen por el filtro y permitirá que se entreguen todos los demás correos electrónicos.

Enprincipal.cf:

check_recipient_access = regexp:/etc/postfix/recipient_access

Y finalmente enmaestro.cf:

smtp inet n - y - - smtpd -o smtpd_recipient_restrictions=$check_recipient_access

Hacernoespecifique -o content_filter=webhook:dummyporque eso cambia la ruta de todos los mensajes.

información relacionada