Esse é um tutorial que vai apresentar uma configuração básica de um servidor de email usando o Postfix e o Dovecot. A ideia aqui é configurar um servidor de email para possibilitar envio e recebimento de emails entre clientes internos.
Por se tratar de uma comunicação assíncrona, o email é ideal para comunicações em que um usuário não precisa esperar que o outro usuário destinatário esteja online.
Dessa forma, quando enviamos um email, o destinatário somente terá acesso ao email no momento em que se conectar a sua caixa de email.
Instalando e configurando o Postfix
Vamos usar o Postfix pois esse é um dos principais servidores de envio de emails com ampla distribuição mundial.
A figura abaixo mostra que vamos iniciar nosso tutorial configurando o servidor de email.
Para instalar o Postfix, vamos usar o comando abaixo.
sudo apt install postfix
Depois confirme a instalação.
Em seguida, vamos escolher o tipo de configuração usada em nosso Postfix. Para esse tutorial vamos usar o modo “Internet Site“. Esse modelo é interessante pois possibilita a integração com domínios externos futuramente.
Agora, vamos dar um nome para o servidor de email. Nesse caso, podemos usar um domínio local ou um domínio que temos na Internet.
Nesse caso estamos fazendo uma configuração local e vamos usar um domínio fictício “labredes.teste“. Você pode usar o domínio que for mais indicado para seu caso.
Depois de clicar em “Ok“, vamos ver o servidor terminando a configuração.
Uma vez instalado o Postfix, vamos verificar se o servidor está ouvindo na porta 25 TCP que é a porta do SMTP.
Para verificar se o servidor Postfix está ouvindo na porta 25, vamos usar o comando abaixo.
ss -nlt
Configuração básica do Postfix
Para realizar a configuração do Postfix, vamos acessar o arquivo “main.cf” e realizar as alterações. Para editar o arquivo “main.cf“, vamos usar o editor nano e podemos usar o comando abaixo.
sudo nano /etc/postfix/main.cf
Em seguida, vamos comentar sobre algumas partes da configuração do arquivo “main.cf“.
- # = Comentários.
- 1 = Apresenta o “$myhostname” informado no próprio arquivo assim como o “$mail_name“, esse banner de apresentação pode ser interessante quando você deseja passar alguma informação para o usuário como por exemplo: “This is server 1” .
- 2 = possibilita a notificação de novo email para os usuários e costuma ser desabilitado pois pode afetar a performance de servidores.
- 3 = Se enviado localmente, acrescenta a string “.$Mydomain” aos endereços que não possuem informações “.domain“. Se enviado remotamente, adiciona a sequência “.$Remote_header_rewrite_domain”.
- 4 = Local onde arquivos Postfix README descrevem a construção, configuração ou operação de um recurso Postfix específico.
- 5 = Permite compatibilidade com versões anteriores. Ideal após um upgrade para uma versão mais recente do Postfix.
A figura acima mostra as configurações usadas na criptografia/segurança das mensagens.
- 1 = Restrições de acesso para o controle de retransmissão de email. SMTP Postfix aplica no contexto do comando “RCPT TO“.
- 2 = O nome do host deste sistema de email.O padrão é usar o nome de domínio totalmente qualificado (FQDN) de “gethostname()” ou usar o resultado não FQDN de “gethostname ()” e anexar “. $ Mydomain”.
FQDN = Nome de Domínio Completamente Qualificado. - 3 = Informações dos bancos de dados de alias para entrega do servidor local.
- 4 = Define o domínio que será utilizado como origem (ou “my origin“) para os e-mails enviados pelo servidor de correio. Essa configuração é importante porque o Postfix usa esse valor para determinar qual será o domínio usado no campo “From” de e-mails enviados localmente ou para definir o domínio de origem de e-mails que são entregues a outros servidores.
- 5 = A lista de domínios entregues por meio do transporte de entrega de mensagens “$local_transport”.
No agente de entrega Postfix local, procura destinatários em /etc/passwd e /etc/aliases.
Apenas usar o padrão “mydestination” especifica nomes para a máquina local apenas.
Em um gateway de domínio de correio, você também deve incluir “$mydomain”. Obs. Aqui acrescentei o meu domínio “labredes.teste”. - 6 = O destino do próximo salto de correio não local. Substitui domínios não locais em endereços de destinatários.
- 7 = Lista de endereços de rede ou padrões de rede / máscara de rede separados por vírgulas e / ou espaços em branco
clientes SMTP “confiáveis” têm permissão para retransmitir
mensagens por meio do Postfix. - 8 = O tamanho máximo das caixas de correio individuais ou arquivo “maildir” local, zero significa que será sem limite.
- 9 = O conjunto de caracteres que pode separar um nome de usuário de sua extensão (exemplo: usuario + xyz).
- 10 = interface na qual o servidor Postfix vai ouvir, “all” significa todas as interfaces da máquina.
- 11 = Quando o valor é definido como all, o Postfix usará tanto o IPv4 quanto o IPv6 para se comunicar.
Importante: Acrescente essas duas linhas ao final do arquivo de configuração.
- 1 = Direcionamento para o diretório mail dos usuários cadastrados na máquina do servidor Postfix.
- 2 = permite a resolução de endereços usando IP.
Para salvar a alteração no editor nano podemos usar o “CTRL + x” e em seguida digitar “y”.
Em seguida, reinicie o servidor Postfix com o comando abaixo.
sudo service postfix restart
Você também pode verificar o status do servidor postfix com o comando abaixo.
sudo service postfix status
Instalando e configurando o Dovecot
Usaremos o Dovecot para poder receber os emails usando o protocolo IMAP. No entanto vale lembrar que o Dovecot também pode usar o POP3.
Inicialmente, vamos instalar o Dovecot com o comando abaixo.
sudo apt install dovecot-core dovecot-imapd
Depois disso, vamos editar o arquivo “dovecot.conf” com o comando abaixo.
sudo nano /etc/dovecot/dovecot.conf
Como na figura abaixo, vamos descomentar a linha “listen = *, ::“.
Para salvar a alteração no editor nano podemos usar o “CTRL + x” e em seguida digitar “y”.
Agora, vamos reiniciar o servidor Dovecot com o comando abaixo.
sudo service dovecot restart
Em seguida, vamos verificar o status do Dovecot com o comando abaixo.
sudo service postfix status
Agora, vamos configurar o arquivo “10-mail.conf” e para isso vamos editar o arquivo com o comando abaixo.
sudo nano /etc/dovecot/conf.d/10-mail.conf
Dentro do arquivo, vamos comentar a linha “mail_location = mbox:~/mail:INBOX=/var/mail/%u” e descomentar a linha “mail_location = maildir:~/Maildir“.
Para salvar a alteração no editor nano podemos usar o “CTRL + x” e em seguida digitar “y”.
Agora, vamos configurar o arquivo “10-master.conf” e para isso vamos editar o arquivo com o comando abaixo.
sudo nano /etc/dovecot/conf.d/10-master.conf
Dentro do arquivo, vamos descomentar as linhas:
“unix_listener /var/spool/postfix/private/auth {”
e
“mode = 0666” .
E vamos adicionar as linhas:
“user = postfix“
“group = postfix“
E descomentar o “}“.
Para salvar a alteração no editor nano podemos usar o “CTRL + x” e em seguida digitar “y“.
Agora, vamos reiniciar o Dovecot para que as alterações tenham efeito. Para reiniciar o servidor, vamos usar o comando abaixo.
sudo service dovecot restart
Criando usuários no servidor Postfix
Lembre-se que na linha de configuração do postfix usamos : “home_mailbox = Maildir/”. Portanto o Postfix vai procurar por usuários criados dentro da máquina que está executando o serviço de Postfix.
Dessa forma, precisamos criar os usuários dentro da máquina do postfix.
Nesse tutorial, vamos criar 2 usuários: “alice” e “maria“.
Para criar o usuário “alice” vamos usar o comando abaixo.
sudo adduser alice
Agora vamos criar o usuário “maria” com o comando abaixo.
sudo adduser maria
Podemos usar o comando abaixo para ver os usuários que criamos.
ls /home/
Instalando e configurando o thunderbird
Agora vamos para uma máquina cliente e vamos instalar o aplicativo de leitura de email “thunderbird“. Você pode escolher outro aplicativo de leitura de email que mais te agrada.
A figura abaixo mostra que agora vamos configurar o cliente que vai acessar o servidor de email.
Mas antes de tudo, vamos fazer uma configuração no arquivo hosts da máquina cliente.
Configurando o arquivo hosts na máquina cliente
Você deve estar se perguntando o motivo de configurar o arquivo hosts no cliente, não é mesmo?
Que bom que você se perguntou. O motivo de estarmos configurando o arquivo hosts é porque o “thunderbird” não aceita endereços IP como nomes de domínios. Portanto, vamos criar alguns apelidos locais no arquivo hosts da máquina cliente.
Para configurar o arquivo hosts do cliente vamos usar o comando abaixo.
sudo nano /etc/hosts
Em seguida, vamos adicionar uma linha no final do arquivo contendo o IP do servidor de email e o nome que vamos dar para o servidor de email.
- 1 = O IP de nosso servidor de email, onde está instalado o Postfix.
- 2 = Nome que demos ao nosso servidor de emails.
Instalando o thunderbird
Para instalar o “thunderbird” vamos usar o comando abaixo.
sudo apt install thunderbird
Depois disso, você pode digitar o comando abaixo ou executar o “thunderbird” na area de programas da sua interface gráfica.
thunderbird
Configurando a conta de usuário de email no thunderbird
Uma vez iniciado o “thunderbird“, vamos configuar a conta do usuário que temos cadastrado lá no servidor de email. Nesse caso, vamos inserir informações do usuário “alice“.
Para isso vamos inserir o nome “alice” e em seguida vamos inserir o email. Para o email vamos usar o nome do usuário e o nome que mapeamos em nosso arquivo “hosts” da máquina de nosso cliente.
Se você estiver usando um DNS com o servidor de email mapeado, você pode usar o nome do seu DNS seguido do seu domínio.
Depois de inserir as informações, vamos clicar em “Continue” e depois em “Done“.
Em seguida, vamos ver um alerta de segurança e vamos clicar em “Confirm Security Exception” para poder validar nossa configuração.
Depois disso, vamos ver a tela abaixo que diz que a conta de email do usuário foi configurada. Então, vamos clicar em “Finish“.
Agora, vamos clicar em “New Message” e vamos escrever um email de teste.
Nesse caso, vamos criar um email de teste do usuário Alice para a própria Alice. Abaixo eu explico os campos que inserimos nessa configuração.
- 1 = Aqui vamos inserir o email do destinatário. Nesse caso, como é apenas o primeiro teste, será para a própria alice.
- 2 = Em seguida, vamos inserir o assunto do email.
- 3 = Depois, vamos inserir um texto dentro do emaill.
- 4 = Vamos clicar em “Send” para poder enviar o email.
Em seguida, vamos ver um segundo alerta de segurança e vamos clicar em “Confirm Security Exception” para poder validar nossa configuração.
Depois disso, vai aparecer uma mensagem dizendo que o envio do email falhou e vamos clicar em “OK“. Essa mensagem aparece porque o certificado que estamos usando para nosso servidor de email é auto assinado.
Para esse cenário, podemos clicar em “OK” e depois vamos clicar em “Send“.
Agora, podemos ver que chegou uma mensagem no “Inbox” do usuário. Então, vamos clicar no “Inbox“.
Depois de clicar no “Inbox“, vamos ver que a mensagem que enviamos está presente.
Configurando uma segunda conta de email
Agora, vamos configurar uma segunda conta de email para podermos fazer o teste de enviar de um usuário para outro.
Obs. Não precisa ter duas contas de usuário de email cadastradas na mesma máquina. Estamos fazendo isso somente para não precisar ligar uma segunda máquina com o “thunderbird“.
Para isso, vamos clicar no símbolo da figura abaixo demonstrado pela seta vermelha.
Em seguida, vamos clicar em “Account Settings” como na figura abaixo.
Depois disso, vamos seguir os passos da figura abaixo.
- 1 = Vamos primeiramente clicar em “Account Actions” .
- 2 = Clicar em “Add Mail Account“.
Depois disso, vamos iniciar a configuração da segunda conta de usuário de email. Nesse caso estamos configurado a conta para o usuário “maria“.
Portanto, vamos fazer a configuração semelhante a que fizemos para o usuário “alice“, diferenciando pelo nome de usuário e a senha.
Depois de configurar a conta do novo usuário, vamos clicar em “Continue” e depois em “Done“.
Agora, podemos ver que a segunda conta de usuário de email foi criada com sucesso no “thunderbird” e podemos clicar em “Finish“.
Enviando email de um usuário para outro no thunderbird
Agora que temos duas contas de usuários configuradas no “thunderbird”, podemos enviar email de um usuário para o outro e podemos ver se o email chegou no outro usuário.
Para fazer o teste, vamos clicar em “New Message” e começar a escrever a mensagem.
Observe, na figura abaixo, que estamos enviando o email com a origem sendo o usuário “alice” e o destinatário sendo o usuário “maria“. Depos de inserir as informações, vamos cliar em “Send“.
Podemos observar, na figura abaixo, que chegou uma mensagem no “Inbox” do usuário “maria“.
Ao clicar no “Inbox” do usuário Maria, vamos ver a mensagem que foi enviada pela Alice.
Veja mais:
Tutorial: Instale seu Servidor DNS no Linux com Bind9 Passo a Passo
Instalar Ubuntu 24 em VirtualBox
Como fazer X11 Forwarding com SSH
Squid Proxy Instalação e Configuração.
Juliana Mascarenhas
Data Scientist and Master in Computer Modeling by LNCC.
Computer Engineer