Precisa de ajuda com o mapeamento canônico do Postfix

1

Estou com dificuldades para conseguir que a função canonical_maps funcione conforme necessário para reparar alguns endereços incorretos de um cliente legado. Aqui está a situação e o que eu tentei até agora:

Cliente legado (oldhost.legacy.org) não anexa seu domínio (legacy.org) a endereços no envelope ou a mensagem ao enviá-los via SMTP. Portanto, se o usuário digitar um endereço como guser@oldhost , ele sairá como SMTP como user@oldhost em vez de [email protected] .

A máquina com postfix ( newhost.standard.org ) tem um domínio diferente ( standard.org ) da máquina herdada. Ele também atua como MX e retransmite para o domínio oldhost.legacy.org .

Quando as mensagens do cliente legado chegam à máquina de pós-postagem com endereços como guser@oldhost (faltando .legacy.org ), gostaria de reescrevê-las para ler [email protected] . Entendo que a função canonical_maps é destinada para esse propósito.

Em /etc/postfix/canonical.pcre tenho:

/^(.*)@oldhost$/    [email protected]

Se eu testar com: postmap –q guser @ oldhost pcre:/etc/postfix/canonical.pcre

a resposta é: [email protected] . Perfeito.

Em /etc/postfix/main.cf tenho

canonical_maps = pcre:/etc/postfix/canonical.pcre

Em seguida, no host herdado, envio uma mensagem como:

To:  [email protected]
Cc: user@oldhost

A mensagem chega à máquina postfix, mas a linha CC não é reescrita.

A documentação para canonical_maps diz que, para que os cabeçalhos sejam reescritos, o cliente precisa corresponder ao local_header_rewrite_clients ou senão o remote_header_rewrite_domain deve ser não nulo. Eu tentei os dois, mas nenhum deles produz a saída que eu preciso.

Se eu definir local_header_rewrite_clients = static:all ou permit_mynetworks ou alguma outra opção que cause uma correspondência do cliente herdado, a opção append_dot_domain assumirá e reconfigurará o endereço como [email protected] . A tabela canônica é aparentemente ignorada.

Se, em vez disso, eu deixar o local_header_rewrite_clients em seu padrão (que não corresponde ao cliente herdado) e ativar remote_header_rewrite_domain = invalid.domain , o endereço será reconfigurado como [email protected] e, mais uma vez, a tabela canônica será ignorada.

Portanto, a documentação da tabela canônica está correta, pois a regravação ocorre apenas se o local_header_rewrite_clients corresponder ao cliente ou se remote_header_rewrite_domain estiver definido. E as reescritas estão de fato ocorrendo. Mas a reescrita que ocorre completamente ignora a tabela canônica.

Então, como faço para que o postfix aplique o append_dot_domain e o append_at_myorigin apenas a si mesmo e aplique a tabela canônica a outros clientes ou, pelo menos, aplique a tabela canônica primeiro?

    
por Michael Fox 15.08.2014 / 07:02

0 respostas