Sua pergunta pode ser expressa por esse pseudocódigo
if (client == dev1 OR client == dev2)
if recipient == admin
pass it
else
redirect to devbox
else
pass it
Infelizmente, o postfix não tem linguagem genérica (exemplo vcl para configuração de verniz) para lidar com a restrição e o encaminhamento. Então, podemos tentar resolvê-lo com o recurso de tabela de hash do postfix. Eu tenho duas ideia de como resolver esse problema.
Solução de várias portas
Eu assumo que (por padrão) seus servidores dev e prod se conectam ao smtp.example.com com a mesma porta (porta 25). Se você puder modificar o código e ajustar a restrição do firewall, então dev1 e dev2 devem se conectar a smtp.example.com com uma porta diferente de 25 (por exemplo, porta 2525), então você pode ir com uma solução simples. Se este cenário não for possível, você pode pular esta ideia e ir para a solução 2.
Para permitir que o servidor dev se conecte ao postfix via porta 2525, defina outra instância smtpd com essa linha em master.cf
2525 inet n - n - - smtpd -o smtpd_client_restrictions=check_recipient_access,pcre:/etc/postfix/devbox
Agora, o conteúdo de /etc/postfix/devbox
/admin@example\.com/ OK
/devbox@example\.com/ OK
/.*/ REDIRECT [email protected]
Agora, o servidor prod não recebe o filtro acima, porque eles estão conectados ao postfix pela porta 25. Assim, ele pode passar pelo postfix como antes.
Solução de Classes de Restrição
Se um cenário como a primeira ideia não for possível, você poderá alcançá-lo com a classe de restrição. Para fazer isso, você pode usar o recurso postfix chamado de classes de restrição. Veja
No main.cf adicione esta linha
smtpd_restriction_classes = devbox
devbox = check_recipient_access pcre:/etc/postfix/devbox
smtpd_recipient_restrictions =
...
check_client_access hash:/etc/postfix/emailrouting,
...
Conteúdo de /etc/postfix/emailrouting
dev1.example.com devbox
dev2.example.com devbox
Conteúdo de /etc/postfix/devbox
/admin@example\.com/ OK
/devbox@example\.com/ OK
/.*/ REDIRECT [email protected]