Há várias semanas que estou procurando uma resposta para o meu problema atual, por isso estou perguntando aqui na esperança de que alguém possa lançar alguma luz ou me indicar a direção certa.
Estou tentando configurar o Postfix de forma que:
- A correspondência recebida
[email protected]
é entregue em/some/custom/MailDir/
. - A correspondência recebida
[email protected]
é entregue em/different/custom/MailDir/
. - O correio de saída pode ser enviado de qualquer usuário/domínio.
[email protected]
e[email protected]
deve ter Maildirs personalizados separados, ou seja,/custom/user3/domain1/mail/
/diferente/user3/domain2/mail/`
Não consegui encontrar uma explicação clara de como conseguir isso online.
Até agora, como cada domínio requer um nome de caminho de diretório personalizado, acredito que precisarei usar várias instâncias do postfix. Eu estive investigando postmulti
. Tenho 2 instâncias do postfix em execução, usando o postmulti, mas não está claro para mim como atingir meus objetivos acima usando o postmulti.
Estou pensando que possivelmente preciso ter uma única instância escutando mensagens externas. Com base no endereço do destinatário do email recebido, essa instância encaminha o email para uma instância interna separada. Essa instância tem seu próprio mail_spool_directory
, que posso configurar para entregar onde eu desejar.
Estou executando o bash no Ubuntu. Meu postfix é a versão 3.9.0. Eu tenho uma única instância configurada com sucesso para entregar/receber mensagens em um diretório personalizado.
Para conseguir entregar mensagens recebidas em diretórios personalizados baseados em domínios de destinatários com Postfix, você não precisa necessariamente usar várias instâncias do Postfix. Você pode conseguir isso usando mapas de alias virtuais e mapas de transporte virtuais.
Vou explicar como fazer isso, mas recomendo que você use uma abordagem de servidor de banco de dados, em vez de arquivos em disco. Existem até imagens docker prontas para serem implantadas que são mais "compatíveis com o futuro".
OK.
Primeiro: faça backup de sua configuração atual.
Em seguida, configure o postfix para domínios virtuais. Eu uso o vim para edição, você pode querer usar vi, nano...outro.
Edite o arquivo de configuração principal do Postfix:
Adicione ou modifique as seguintes configurações:
Em seguida, defina caixas de correio e aliases criando o arquivo vmailbox para definir os locais das caixas de correio:
Adicione as entradas para os usuários e seus diretórios de correio correspondentes:
Salve e feche o arquivo.
Agora, crie o arquivo de alias virtual (se necessário) para qualquer alias virtual:
Conteúdo de exemplo:
Salve e feche o arquivo.
Execute o postmap para fazer o hash destes arquivos:
Agora, configure o Dovecot para caixas de correio virtuais, edite a configuração do dovecot:
Certifique-se de ter o seguinte:
Configure o Dovecot para usar o banco de dados de usuários virtuais do Postfix:
Certifique-se de ter:
Crie o arquivo de usuários do Dovecot:
Adicione os usuários:
Salve e feche o arquivo.
Definir permissões:
Em seguida, reinicie o Postfix e o Dovecot
Explicação:
Domínios Virtuais: A configuração virtual_mailbox_domains define os domínios manipulados por esta configuração do Postfix.
Locais de caixa de correio: O arquivo virtual_mailbox_maps (/etc/postfix/vmailbox) define onde o correio para cada combinação de usuário/domínio deve ser entregue.
Configuração do Dovecot: o Dovecot está configurado para procurar usuários em um arquivo de senha e mapeá-los para seus diretórios de e-mail com base em %d (domínio) e %n (nome de usuário).
Existem outros tutoriais caso o meu não seja abrangente o suficiente.
Boa sorte!