Configurei com êxito o Postfix para retransmitir e-mails via Mandrill usando SASL e sender_dependent_relayhost_maps
com uma tabela MySQL para que diferentes remetentes se conectem ao Mandrill usando seu próprio nome de usuário e chave de API do Mandrill.
Até aí tudo bem, mas eu tenho três usuários que usam um provedor de serviços de email e o remetente no envelope da mensagem está definido como "[email protected]" para todos os três usuários e o único local que contém o email do usuário real O endereço está no cabeçalho De: email .
Estou feliz com a segurança (ou a falta dela) de usar o cabeçalho De: pois estou encaminhando apenas emails enviados para endereços de email específicos que são rigidamente controlados, mas ficaria muito grato por sugestões sobre como posso melhor especificar a relayhost com base no valor do cabeçalho From: . Existe alguma maneira de definir o valor do envelope como o campo De? Ou alguma outra maneira de fazer isso?
fonte
Respostas:
Com base neste tópico na lista de discussão do postfix: transporte diferente para todo o correio introduzido via sendmail (1) , parece que seu caso foi possível. Infelizmente você não pode confiar apenas em duas tabelas
sender_dependent_relayhost_maps
esmtp_sasl_password_maps
. Você precisa modificarmaster.cf
. A idéia está sendo usadaheader_checks
para rotear email para transporte diferente. Em cada transporte, definimos o cliente smtp que usa credenciais independentes e relayhost.Primeiro defina header_checks no main.cf e sua tabela pcre
Bom, agora nós configuração
smtp1
,smtp2
,smtp3
transporte em master.cfO arquivo
smtpX.relay
tem conteúdo semelhante, por exemploAviso Legal:
smtp_sasl_password_maps
é apenas por exemplo. Você pode substituí-lo pela tabela mysql.fonte
Isso funcionou para mim com uma alteração: a ação "FILTER" precisa ser adicionada no arquivo header_dependent_relay :
Consulte http://www.postfix.org/header_checks.5.html
fonte