Encaminhar o email para outros servidores se o destinatário não existir no mapa de alias

2

Esta é a primeira vez que estou começando a escrever um postfix mais complexo, já que detesto configurar configurações de email sem saber o que fazer. Mas agora eu sou obrigado a fazer.

Aqui a configuração:

Por motivos internos, é necessário que meu redirecionamento de postfix seja configurado assim:

If recipient of an email is doesn't exist in alias map but the recipient domain does, postfix will send it to real mail server.

Ok, isso parece estranho, mas estou dando um exemplo.

O registro MX de example.com está definido como ProxyHost, mas o servidor de e-mail real com todas as contas está acessível sob external.example.com

No mysql eu tenho a configuração [email protected] que deve ser encaminhada para [email protected]. Isso está funcionando agora.

Mas se eu estiver enviando uma mensagem para [email protected] onde qualquer que seja NÃO está na tabela de encaminhamento local do mysql, mas como você pode ver exemplo. com é, eu adoraria encaminhar o email para o servidor de email real. Esta informação real do servidor estava localizada na tabela de domínios na coluna realmx .

Isso não parece muito difícil para mim, mas não consigo lidar com isso. No momento, todos os e-mails para [email protected] estão sendo rejeitados.

    
por Bastian Bringenberg 01.02.2015 / 03:19

2 respostas

0

Essa é uma configuração muito padrão e típica. O postfix é executado em um servidor que está voltado para fora e recebe e-mail e passa para o servidor que possui a caixa de correio:

world -> smtp.example.com -> imap.example.com

No seu servidor smtp (que você chama de ProxyHost mas não usarei este termo porque não é realmente um proxy no uso geral do termo), você usará as configurações a seguir (você terá para se ajustar ao seu cenário exato, estas são as diretrizes gerais):

mydestination = localhost
transport_maps = hash:/etc/postfix/transport
relay_domains = example.com
relay_recipient_maps = hash:/etc/postfix/relay_recipients

/etc/postfix/relay_recipients  conterá a lista de destinatários válidos.

/etc/postfix/transport  irá listar o destino para o destino final do correio.

A documentação completa e a explicação completa de cada configuração acima podem ser encontradas no ótimo manual do Postfix. Comece com a documentação relay_domains .

    
por 01.02.2015 / 16:08
1

Aviso: consulta não testada | instalação não testada.
Como você forneceu poucas informações sobre sua configuração, presumo que você tenha definido o alias via virtual_alias_maps .

O primeiro problema é evitar ser rejeitado. A solução é definir relay_domains com os mapas do mysql

relay_domains = mysql:/etc/postfix/relay_domains

com parte de consulta é

SELECT 1 FROM forwarding WHERE email LIKE '%%@%s' LIMIT 1;

O segundo problema é o redirecionamento de e-mail para o realmx . A solução é definir transport_maps com os mapas do mysql unindo o encaminhamento e a tabela de domínio

relay_domains = mysql:/etc/postfix/relay_domains

com parte de consulta é

SELECT domain.realmx FROM domain INNER JOIN forwarding ON email LIKE CONCAT ('%',domain.domain) WHERE domain.domain = '%d' LIMIT 1;

O violino SQL.

    
por 01.02.2015 / 16:01

Tags