Não é tão complicado criar um servidor de e-mail próprio. Com ele, você tem máximo controle sobre a sua correspondência eletrônica. Crie um servidor de e-mail próprio configurando-o com o Docker e a stack docker-mailserver pronta para uso. Conheça os requisitos necessários e aprenda como criar e configurar um servidor de e-mail próprio com o nosso passo a passo.

O que é servidor de e-mail próprio?

Um servidor de e-mail Docker é uma solução de e-mail auto-hospedada, executada em contêineres Docker. Ele gerencia o envio, o recebimento e o armazenamento de e-mails, oferecendo controle total sobre privacidade dos dados, políticas de segurança e configurações do sistema. Em comparação com provedores como Gmail ou Outlook, um servidor de e-mail próprio no Docker coloca você no controle da infraestrutura, sendo ideal para desenvolvedores, usuários preocupados com privacidade e pequenas empresas.

Por que usar o Docker para um servidor de e-mail próprio?

Usar o Docker para hospedar o seu servidor de e-mail oferece diversas vantagens importantes:

  • Isolamento e segurança: Contêineres Docker isolam o servidor de e-mail, reduzindo o risco de comprometimento do sistema como um todo e aumentando a segurança.
  • Portabilidade: Contêineres Docker podem ser facilmente movidos entre ambientes, garantindo uma configuração consistente entre servidores locais e em nuvem.
  • Implantação simplificada: O Docker oferece stacks pré-configurados, o que agiliza o processo de instalação e elimina a necessidade de configurações manuais.
  • Escalabilidade: É possível escalar os contêineres Docker com facilidade para lidar com o aumento no tráfego de e-mails ou mudanças na demanda de recursos.
  • Controle de versões: É possível definir versões específicas das imagens Docker, evitando problemas de compatibilidade e facilitando o rollback (reversão), se necessário.
  • Consistência entre ambientes: O Docker garante configurações padronizadas em ambientes de desenvolvimento, teste e produção.
Um servidor de e-mail seguro, potente e confiável
  • Padrões de segurança mais altos
  • Criptografia automática com SSL/TLS
  • Data centers com certificação ISO 27001 e com redundância geográfica
  • IMAP e SMTP

Requisitos de hardware para criar um servidor de e-mail Docker

Nota

Este tutorial é voltado para usuários com conhecimento técnico, familiarizados com Linux e Docker, que desejam uma infraestrutura de e-mail privada e flexível. Ele é especialmente relevante para desenvolvedores, administradores de TI e pequenas empresas.

Para criar seu servidor de e-mail próprio, primeiro você precisa do hardware adequado. A potência necessária depende de diversos fatores, como o volume de e-mails esperado. Um endereço IPv4 estático é essencial para garantir uma comunicação eficiente com outros servidores de e-mail. Além disso, é importante realizar uma configuração correta de DNS, incluindo registros MX, SPF, DKIM e DMARC. O suporte a IPv6 se torna cada vez mais relevante, pois garante a compatibilidade e melhora a reputação dos e-mails enviados.

Tecnologias recomendadas atualmente

  • Imagem Docker: docker-mailserver/docker-mailserver:v13.2+
  • Protocolos de e-mail: SMTP (Portas 25, 587, 465), IMAPS (993), POP3S (995)
  • Padrões de segurança: TLS 1.3, DKIM, SPF, DMARC, DNSSEC (se suportado)
  • Sistema operacional base: Ubuntu 22.04 LTS, Debian 12 ou distribuições Linux estáveis equivalentes
Dica

Você pode simplificar todo o processo usando o Docker mail server, uma stack open source bastante popular mantido pela comunidade. Ele inclui Postfix, Dovecot, rspamd, ClamAV e integração opcional com LDAP em um único contêiner.

O que considerar ao criar um servidor de e-mail Docker?

Recomendações de segurança

Para proteger seu servidor de e-mail, é fundamental aplicar configurações de segurança de forma consistente, incluindo:

  • Utilizar certificados TLS atualizados (mínimo TLS 1.2, idealmente TLS 1.3)
  • Configurar e aplicar políticas SPF, DKIM e DMARC
  • Implementar limitação de taxa de envio e autenticação via SASL
  • Habilitar conexões criptografadas para IMAP/POP3 e SMTP
  • Configurar logs com ferramentas como rsyslog e rotação e arquivamento estruturado de logs
Nota

Mesmo com a utilização de contêineres Docker, uma configuração de segurança independente é essencial. O Docker facilita a instalação, mas não substitui o reforço de segurança do sistema, que inclui firewalls, permissões restritas, logs (ex.: via rsyslog) e atualizações regulares.

Recomendações gerais de configuração

A configuração de um servidor de e-mail Docker exige conhecimento técnico e atenção especial à segurança. A seguir, alguns pontos essenciais:

  • Escolher uma imagem Docker apropriada e um stack de servidor de e-mail (ex.: docker-mailserver/docker-mailserver)
  • Configurar os registros DNS (MX, SPF, DKIM, DMARC)
  • Proteger o host Docker (firewall, Fail2Ban, criptografia)
  • Escolher ferramentas adequadas para administração e monitoramento
  • Realizar atualizações e backups regularmente (incluindo a imagem Docker)
  • Configurar entradas de registro de DNS reverso e suporte a IPv6
  • Atender aos requisitos legais (ex.: LGPD

Hardware necessário

Para criar seu servidor de e-mail próprio no Docker, é necessário contar com hardware adequado. O desempenho necessário depende de fatores como o volume de e-mails enviados diariamente e o número de usuários. Embora os contêineres Docker sejam leves, ainda é necessário considerar RAM, CPU e armazenamento. Serviços adicionais, como sistemas de backup ou filtros de conteúdo (ex.: antispam ou antiphishing), também exigem mais recursos. Além disso, você precisará de um endereço IPv4 estático para garantir boa comunicação com outros servidores de e-mail — IPs dinâmicos podem gerar problemas na entrega de mensagens.

Dica

Quer dar um toque profissional ao seu servidor de e-mail Docker? Um domínio personalizado é essencial para isso. Registre o seu domínio próprio com IONOS e obtenha um certificado SSL/TLS para o seu servidor de e-mail!

Ao escolher um ambiente adequado para o seu servidor de e-mail Docker, considere a capacidade necessária. Uma configuração simples consegue lidar com poucos e-mails por dia, enquanto um servidor corporativo exige bastante RAM, CPU e espaço de armazenamento.

Cenário de servidor de e-mail Hardware Plano da IONOS ideal
Servidor doméstico simples, com pouco tráfego 2 vCores; 8 GB de RAM; 240 GB SSD VPS L
Servidor de e-mail para pequena empresa com até 1.000 e-mails diários 8 vCores; 16 GB de RAM; 480 GB SSD VPS XL
Servidor de e-mail empresarial com mais de 50.000 e-mails diários 6 vCores; 32 GB de RAM; 2 x 480 GB SSD RAID Dedicated AMD Server
Dica

Um Dedicated Server da IONOS lhe dá acesso a um hardware empresarial para uso exclusivo. Planos de vServer e Cloud Server, por sua vez, são baseados em recursos virtualizados compartilhados com outros clientes, mas sem prejuízo de desempenho!

Tutorial passo a passo: Criar servidor de e-mail Docker

Neste tutorial, usaremos o popular contêiner Docker docker-mailserver.

Esse contêiner Docker leve e open source (licença MIT) oferece uma stack pronta para uso, para criar um servidor de e-mail próprio. Ou seja, ele já inclui todos os componentes importantes, como um servidor SMTP, um servidor IMAP ou POP3, um software antispam e antivírus e um serviço LDAP.

Passo 1: Obter imagem Docker

Você pode obter a imagem mais atual do docker-mailserver no diretório oficial do Docker Hub ou no repositório GitHub oficial da ferramenta.

O recomendado é obter uma versão estável, como a v13.2, em vez de usar tags como :latest e :edge.

Obtenha a imagem Docker inserindo o seguinte código na linha de comando:

docker pull mailserver/docker-mailserver:v13.2  
# ou:  
docker pull ghcr.io/docker-mailserver/docker-mailserver:v13.2
bash 

Passo 2: Configurar o docker-compose.yml

O próximo passo é configurar o docker-compose.yml para definir os serviços e volumes necessários ao seu contêiner Docker. Aqui está um exemplo de configuração para seu servidor de e-mail:

version: '3.8'    
services:  
  mailserver:  
    image: docker.io/mailserver/docker-mailserver:v13.2  
    container_name: mailserver  
    hostname: mail-server  
    domainname: example.com  
    ports:  
      - "25:25"  
      - "587:587"  
      - "465:465"  
    volumes:  
      - ./docker-data/dms/mail-data/:/var/mail/  
      - ./docker-data/dms/mail-state/:/var/mail-state/  
      - ./docker-data/dms/mail-logs/:/var/log/mail/  
      - ./docker-data/dms/config/:/tmp/docker-mailserver/  
      - ./docker-data/nginx-proxy/certs/:/etc/letsencrypt/  
      - /etc/localtime:/etc/localtime:ro  
    environment:  
      - ENABLE_FAIL2BAN=1  
      - SSL_TYPE=letsencrypt  
      - PERMIT_DOCKER=network  
      - ONE_DIR=1  
      - ENABLE_POSTGREY=0  
      - ENABLE_CLAMAV=0  
      - ENABLE_SPAMASSASSIN=0  
      - SPOOF_PROTECTION=0  
    cap_add:  
      - NET_ADMIN  
      - SYS_PTRACE 
yaml 

Essa configuração garante que o contêiner Docker use as portas corretas para SMTP (25), IMAPS (993) e SMTP Submission (587), e que os volumes sejam mapeados corretamente para um armazenamento de dados persistente. Além disso, recursos de segurança como Fail2Ban e Let’s Encrypt SSL estão ativados.

Nota

Nos manuais oficiais do docker-mailserver no GitHub, você encontra uma lista detalhada de configurações possíveis para o servidor de e-mail.

Passo 3: Liberar as portas

No arquivo docker-compose.yml, três portas (25, 465 e 587) estarão especificadas. Essas são as portas convencionais de um servidor SMTP. Elas também devem ser abertas no firewall do seu servidor para garantir um tráfego de e-mail tranquilo.

Se estiver usando o serviço de hospedagem da IONOS, faça isso com toda facilidade, pelo Cloud Panel:

  1. Faça login com seus dados de acesso na página de login do Cloud Panel.
  2. Vá para a seção “Server & Cloud”.
  3. Selecione o hardware do servidor no qual você deseja criar um servidor de e-mail.
  4. No menu à esquerda, clique em “Network” > “Firewall Policies”.
  5. Insira as três portas TCP 25, 465 e 587 por meio do botão “Add Rule”.
Imagem: IONOS Cloud Panel: Adicionar regra de firewall
IONOS Cloud Panel: Adicionar regra de firewall

Passo 4: Configurar DNS

O passo seguinte é garantir que o serviço DNS do seu domínio esteja configurado corretamente:

  • Registro MX: Aponta para o servidor de e-mail (por exemplo, mail.exemplo.com) que você definiu nos campos hostname e domainname do seu arquivo docker-compose.yml.
  • Registro SPF: Um registro do tipo TXT para o domínio (e não para o hostname), por exemplo: v=spf1 mx ~all.
Nota

~all significa “Softfail”, mas alternativamente você pode usar -all, se preferir uma política mais rígida.

Configurar DNS no Painel de Controle da IONOS

  1. Acesse o Cloud Panel da IONOS.
  2. Vá até “Domínios e SSL.”
  3. Encontre seu domínio e clique no ícone de configurações.
  4. Selecione “DNS.”
  5. Adicione os seguintes registros:
    • Registro MX: Destino = mail.exemplo.com, Prioridade = 10
    • Registro TXT: Tipo = TXT, Valor = v=spf1 mx ~all
Imagem: IONOS Cloud Panel: Adicionar registro DNS
IONOS Cloud Panel: Adicionar registro DNS

Em seguida, clique em “Reset domain” no menu superior, para aplicar as alterações. Confirme as alterações e clique em “Reset now” – isso afetará somente os registros DNS atualizados, não o domínio em si.

Dica

Quer arquivar seus e-mails comerciais com segurança? Com o IONOS Email Archiving, você pode arquivar automaticamente as caixas de correio selecionadas em formato inviolável.

Passo 5: Gerar chaves DKIM

Para aumentar a segurança do seu servidor de e-mail, agora você deve gerar um registro DKIM para o seu domínio. Essa técnica de criptografia poderá ser usada depois para assinar mensagens digitalmente.

Use o script setup.sh fornecido pelo diretório docker-mailserver:

./setup.sh config dkim

A chave pública gerada será salva no arquivo abaixo se o volume tiver sido montado corretamente:

docker-data/dms/config/opendkim/keys/example.com/mail.txt 
swift 

Abra o arquivo e copie seu conteúdo para criar um registro TXT nas configurações de DNS do seu domínio. O registro DNS pode ter a seguinte aparência:

mail._domainkey.example.com. IN TXT (  
  "v=DKIM1; h=sha256; k=rsa; "  
  "p=MIIBIjANBgkqhkiG9w0BAQEFAAOC...continuedPublicKey...IDAQAB"  
) 
java 
  • mail é o seletor e pode ter qualquer nome que você preferir (por exemplo: default, key2025, etc.).
  • Se o seu provedor de DNS limitar o comprimento a 255 caracteres por string, será necessário dividir a chave (como mostrado no exemplo).
  • Certifique-se de que o tipo do registro seja TXT e que ele se aplique ao domínio completo: mail._domainkey.exemplo.com.
Nota

Além do DKIM, é fundamental configurar também os registros SPF e DMARC para garantir uma proteção completa contra falsificação de e-mails (spoofing).

Passo 6: Iniciar servidor e criar o primeiro endereço

Inicie o servidor de e-mail configurado diretamente pelo diretório do projeto com o seguinte comando:

docker-compose up -d
bash

Essas instruções ajudarão você a configurar, de forma segura e eficiente, tanto ambientes modernos baseados em contêineres quanto servidores de e-mail tradicionais.

Um servidor de e-mail seguro, potente e confiável
  • Padrões de segurança mais altos
  • Criptografia automática com SSL/TLS
  • Data centers com certificação ISO 27001 e com redundância geográfica
  • IMAP e SMTP
Este artigo foi útil?
Ir para o menu principal