Como configurar o Postfix para usar caixas de correio virtuais no Ubuntu 20.04
Após a instalação e configuração básica do Postfix, ele pode enviar e receber e-mails enviados para os nomes de usuários registrados no sistema. Neste tutorial, configuraremos o Postfix para usar caixas de correio virtuais no Ubuntu 20.04.
Configuração do sistema
Em primeiro lugar, é necessária alguma preparação do sistema para a operação das caixas de correio virtuais. Vamos criar uma pasta caixas de correio virtuais para isso. Seu nome pode ser arbitrário, mas se você o alterar, não se esqueça de substituir a opção apropriada na configuração posterior. Ela conterá uma pasta para seu nome de domínio. Dentro dela, o Postfix adicionará arquivos correspondentes a cada usuário virtual depois de receber o primeiro e-mail endereçado a ele.
sudo mkdir -p /home/virtualmailboxes/domain-name.com
Agora vamos configurar o usuário virtualmail, o grupo e os direitos para trabalhar com essas pastas.
sudo groupadd -g 2000 virtualmail
sudo useradd -g virtualmail -u 2000 virtualmail -d /home/virtualmailboxes -m
chown -R virtualmail:virtualmail /home/virtualmailboxes
Configuração do postfix
Abra o arquivo de configuração do Postfix:
sudo nano /etc/postfix/main.cf
O Postfix pode operar em um dos dois modos ao processar e-mails para um único domínio:
- entregar e-mails aos usuários do sistema, conforme configurado anteriormente;
- trabalhar com caixas de correio virtuais e entregar e-mails para usuários virtuais.
Para configurar a primeira opção, o domínio de destino é adicionado à variável mydestination. Portanto, agora vamos removê-lo de lá e trazê-lo para a seguinte forma:
mydestination = localhost.com, localhost
A próxima etapa é adicionar as seguintes configurações ao arquivo de configuração:
virtual_mailbox_domains = domain-name.com
virtual_mailbox_base = /home/virtualmailboxes
virtual_mailbox_maps = hash:/etc/postfix/virtualmaps
virtual_minimum_uid = 500
virtual_uid_maps = static:2000
virtual_gid_maps = static:2000
A presença da variável virtual_mailbox_domains indica que o Postfix está trabalhando no modo de caixa de correio virtual. Ela também contém o domínio para o qual o e-mail está sendo processado. virtual_mailbox_base indica o caminho para armazenar o correio, virtual_mailbox_maps indica um arquivo com uma lista de usuários virtuais. virtual_minimum_uid, virtual_uid_maps, virtual_gid_maps - configurações do usuário do sistema que gerenciará a pasta de correio.
Agora vamos criar uma lista de caixas de correio virtuais, cujo caminho foi especificado em virtual_mailbox_maps. Cada linha desse arquivo deve conter um endereço de e-mail no formato user@domain e separado por um espaço domain/folder - caminho do arquivo para armazenar o e-mail em relação a virtual_mailbox_base.
sudo nano /etc/postfix/virtualmaps
user1@domain-name.com domain-name.com/user1
user2@domain-name.com domain-name.com/user2
support@domain-name.com domain-name.com/support
Salve o arquivo. Para aplicar as configurações, você precisa executar dois comandos:
postmap /etc/postfix/virtualmaps
postfix reload
Testando caixas de correio virtuais
Para testar o recebimento de um e-mail por um usuário virtual, vamos enviar um e-mail a ele. Faremos isso em nome de outro usuário criado por nós e indicaremos o e-mail dele como endereço de retorno (parâmetros -u e -r):
sudo echo "Postfix virtual mailboxes test" | mail -r user2@domain-name.com -u user2@domain-name.com -s "Subject" user1@domain-name.com
Para visualizar as mensagens recebidas pelo usuário1, use o comando:
sudo cat /home/virtualmailboxes/domain-name.com/user1
Saída:
From user2@domain-name.com Wed Mar 31 12:55:19 2021
Return-Path: <user2@domain-name.com>
X-Original-To: user1@domain-name.com
Delivered-To: user1@domain-name.com
Received: by domain-name.com (Postfix, from userid 0)
id 260A481421; Wed, 31 Mar 2021 12:55:19 +0000 (UTC)
Subject: Subject
To: <user1@domain-name.com>
X-Mailer: mail (GNU Mailutils 3.7)
Message-Id: <20210331125519.260A481421@domain-name.com>
Date: Wed, 31 Mar 2021 12:55:19 +0000 (UTC)
From: root <user2@domain-name.com>
Postfix virtual mailboxes test
Se a carta não estiver lá, tente examinar os registros de envio de e-mail usando o comando:
sudo cat /var/log/mail.log
Além disso, se ocorrer um erro, a carta pode ser devolvida ao remetente. É por isso que a enviamos em nome do usuário virtual criado anteriormente. Afinal de contas, o correio não é mais entregue aos usuários do sistema. Para visualizar a caixa postal do remetente (user2), use o comando:
sudo cat /home/virtualmailboxes/domain-name.com/user2


