Resumo da solução que encontrei:
-
Remova o alias que corresponde a 'oerp @ localhost' ao script.
-
Coloque o script como um canal em
master.cf
. -
Crie um mapa de transporte que corresponda ao seu domínio OpenERP para ser entregue ao script definido anteriormente em
master.cf
. -
Use o
pg_aliases.cf
para um mapa de caixa de correio virtual em vez de alias. Em seguida, remova o alias oerp em/etc/aliases
.
Resposta longa
A solução anterior simplesmente deu o mesmo alias para cada partida, resultando na falta de confiabilidade do 'Delivered-To'. Agora, o que fiz foi reformular toda a solução e usar uma caixa de correio virtual, como:
virtual_mailbox_domains = mydomain.com
virtual_mailbox_maps = pgsql:/etc/postfix/pg-aliases.cf
Isso leva outra visão ao problema, e o IMO está mais correto: Em vez de fornecer a mesma caixa de correio "aliased" para cada mensagem, simplesmente encontre uma caixa de correio virtual positiva .
O pg-aliases.cf
foi modificado (embora isso não seja estritamente necessário, acho mais conveniente para fins de registro):
query = SELECT '%u@%d'
FROM mail_alias a, ir_config_parameter d
WHERE (d.key = 'mail.catchall.domain')
AND (d.value = '%d')
AND (a.alias_name = '%u');
Agora, você precisa definir um transporte que realmente entregue os e-mails recebidos ao script mailgate. Isso é feito em duas etapas:
Primeiro, configure o script mailgate no arquivo master.cf
, assim:
openerp unix - n n - 1 pipe
flags=DFR user=openerp argv=/path/to/mailgate.py -d dbname ... etc ..
Observe que 1
como limite. Isso é feito para que o acesso simultâneo ao servidor OpenERP não seja possível, do contrário as mensagens provenientes de vários endereços @mydomain.com
podem duplicar no banco de dados devido ao isolamento transacional.
Escreva um arquivo /etc/postfix/transports
simples:
mydomain.com openerp
E instrua main.cf
a ler este arquivo de transporte:
transport_maps = hash:/etc/postfix/transports
Você pode esquecer o mapa de transporte use virtual_transport=openerp
se o único domínio virtual que você tem é este. No entanto, você pode achar útil ter outros domínios internos para mensagens internas, etc.