Ok, acabei de fazer isso funcionar - apesar de parecer mais cabeludo do que pensei. Larguei a parte maildir_command
e usei transport_maps
. A chave é fazer 5 coisas:
- Configurar um arquivo db para manipular aliases (e adicionar um alias genérico)
- Configure um arquivo db para mapear o 'transporte' do domínio em questão para um manipulador especial.
- Compile os arquivos db no formato do banco de dados berkeley que o postfix deseja.
- Configure o manipulador em
/etc/postfix/master.cf
para enviar mensagens para o script. - Defina
/etc/postfix/main.cf
para usar o banco de dados de transporte paratransport_maps
e o alias db paravirtual_alias-maps
.
(1) Crie /etc/postfix/virtual_aliases
para adicionar um apelido pega-tudo - localuser
precisa ser um usuário local existente:
@mydomain.tld [email protected]
(2) Crie /etc/postfix/transport
para adicionar um mapeamento de transporte. "mytransportname" pode ser o que você quiser; é usado abaixo em master.cf
:
mydomain.tld mytransportname:
(3) Em seguida, tanto transport
como virtual_aliases
precisam ser compilados em arquivos db de berkeley:
$ sudo postmap /etc/postfix/virtual_aliases
$ sudo postmap /etc/postfix/transport
(4) Adicione o transporte para /etc/postfix/master.cf
:
mytransportname unix - n n - - pipe
flags=FR user=localuser argv=/path/to/my/script.py
${nexthop} ${user}
(5) Em /etc/postfix/main.cf
:
...
transport_maps = hash:/etc/postfix/transport
virtual_alias_maps = hash:/etc/postfix/virtual_aliases
E ... é bom ir! Sheesh.