Postfix canaliza e-mails apenas para determinadas contas de e-mail

Postfix canaliza e-mails apenas para determinadas contas de e-mail

Configurei o postfix para executar um script quando o email for recebido. O script é acionado sempre que um email é recebido no postfix. Porém o problema é que ele está sendo acionado em todas as contas de email ao invés de apenas em uma conta que adicionei no arquivo de acesso do postfix. Aqui está minha configuração: mestre.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

E aqui está o meuprincipal.cfarquivo:

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

Aqui está o conteúdo do meu arquivo de acesso:

robot@domain FILTER myhook:dummy

Depois de fazer as alterações acima, executei:

postmap access
postfix reload

Ainda assim, todos os e-mails estão sendo roteados para esse script, e não apenas aqueles que são enviados para robot@domain

Perdi algo? Eu segui este tutorial para configurações:

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

Responder1

ATUALIZAÇÃO: descobri que existem duas abordagens para isso

Abordagem 1

Criartransporte_mapas:

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

Isso força qualquer e-mail destinado a robot@domain ir direto para o gancho. Qualquer outra coisa é processada normalmente.

Modificarprincipal.cfadicionar:

transport_maps = regexp:/etc/postfix/transport_maps

Não se esqueça de correr postmap /etc/postfix/transport_mapsepostfix reload

Abordagem 2

Limitação: o correio entregue para robot@domain através do transporte local não será filtrado

Eu fiz isso funcionar usando umdestinatário_acessoarquivo assim (observe que estou usando a sintaxe regexp):

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

Isso forçará os e-mails para robot@domain através do filtro e permitirá que todos os outros e-mails sejam entregues.

Emprincipal.cf:

check_recipient_access = regexp:/etc/postfix/recipient_access

E finalmente emmestre.cf:

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

Fazernãoespecifique -o content_filter=webhook:dummyporque isso altera o roteamento de todas as mensagens.

informação relacionada