Eu tenho uma configuração do Postfix com usuários virtuais funcionando bem. Alguns de meus usuários redirecionam seus e-mails para contas de e-mail externas do Gmail, por exemplo: [email protected]
é encaminhado [email protected]
para sua própria conveniência via virtual_alias_maps
.
Agora tentei usar transport_maps
para ter um transporte dedicado para esses encaminhamentos assim:
main.cf:
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_alias_maps = mysql:/etc/postfix/virtual/mysql-alias-maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/virtual/mysql-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/virtual/mysql-mailbox-maps.cf
default_transport = out-default
transport_maps = mysql:/etc/postfix/virtual/mysql-transport-maps.cf
mestre.cf:
out-default unix - - n - - smtp
-o proxy_interfaces=$smtp_default_transport_proxy_interface
-o smtp_bind_address=$smtp_default_transport_interfaces
-o inet_interfaces=$smtp_default_transport_interfaces
-o myhostname=$smtp_default_transport_hostname
-o smtp_helo_name=$smtp_default_transport_hostname
-o syslog_name=smtp-$smtp_default_transport_hostname
out-fwd unix - - n - - smtp
-o proxy_interfaces=$smtp_default_transport_proxy_interface
-o smtp_bind_address=$smtp_default_transport_interfaces
-o inet_interfaces=$smtp_default_transport_interfaces
-o myhostname=$smtp_default_transport_hostname
-o smtp_helo_name=$smtp_default_transport_hostname
-o syslog_name=smtp-fwd-$smtp_default_transport_hostname
-o bounce_queue_lifetime=0
-o maximal_queue_lifetime=0
mysql-alias-maps.cf:
query = SELECT destination FROM `aliases` WHERE source='%s'
mysql-transport-maps.cf:
query = SELECT IF (ISNULL(destination), NULL, 'out-fwd') as transport \
FROM `aliases` \
WHERE destination='%s' \
AND destination LIKE '%%@gmail.com'
O que estou tentando realizar é "se o usuário tiver seu e-mail encaminhado para um @gmail, reduza o tempo de vida da fila " .
Agora, quando tento enviar um e-mail para esses usuários, acontece o seguinte:
postfix/qmgr[28839]: warning: connect to transport private/out-fwd,out-fwd: No such file or directory
private/out-fwd, out-fwd > Por que está duplicando o nome do transporte?
Se eu alterar a consulta para retornar out-fwd:
(dois pontos no final), recebo:
smtp-fwd-xxxx/smtp[23429]: fatal: valid hostname or network address required in server description: ,out-fwd:
,encaminhado: ??? Por que?
Observe que, se eu simplesmente comentar, o transport_maps
e-mail da linha será entregue usando default_transport = out-default
muito bem.
Obrigado.
Eu encontrei o problema, era minha consulta. A consulta acima retornaria vários resultados se houvesse mais de uma conta local encaminhada / alias para a mesma conta externa do Gmail e, por algum motivo, o Postfix concatenaria os resultados.
Adicionando o
LIMIT
corrigido o problema.