Não é tão com­pli­cado criar um servidor de e-mail próprio. Com ele, você tem máximo controle sobre a sua cor­res­pon­dên­cia ele­trô­nica. Crie um servidor de e-mail próprio con­fi­gu­rando-o com o Docker e a stack docker-mail­ser­ver pronta para uso. Conheça os re­qui­si­tos ne­ces­sá­rios e aprenda como criar e con­fi­gu­rar 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 con­têi­ne­res Docker. Ele gerencia o envio, o re­ce­bi­mento e o ar­ma­ze­na­mento de e-mails, ofe­re­cendo controle total sobre pri­va­ci­dade dos dados, políticas de segurança e con­fi­gu­ra­ções do sistema. Em com­pa­ra­ção com pro­ve­do­res como Gmail ou Outlook, um servidor de e-mail próprio no Docker coloca você no controle da in­fra­es­tru­tura, sendo ideal para de­sen­vol­ve­do­res, usuários pre­o­cu­pa­dos com pri­va­ci­dade 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 im­por­tan­tes:

  • Iso­la­mento e segurança: Con­têi­ne­res Docker isolam o servidor de e-mail, reduzindo o risco de com­pro­me­ti­mento do sistema como um todo e au­men­tando a segurança.
  • Por­ta­bi­li­dade: Con­têi­ne­res Docker podem ser fa­cil­mente movidos entre ambientes, ga­ran­tindo uma con­fi­gu­ra­ção con­sis­tente entre ser­vi­do­res locais e em nuvem.
  • Im­plan­ta­ção sim­pli­fi­cada: O Docker oferece stacks pré-con­fi­gu­ra­dos, o que agiliza o processo de ins­ta­la­ção e elimina a ne­ces­si­dade de con­fi­gu­ra­ções manuais.
  • Es­ca­la­bi­li­dade: É possível escalar os con­têi­ne­res Docker com fa­ci­li­dade 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 es­pe­cí­fi­cas das imagens Docker, evitando problemas de com­pa­ti­bi­li­dade e fa­ci­li­tando o rollback (reversão), se ne­ces­sá­rio.
  • Con­sis­tên­cia entre ambientes: O Docker garante con­fi­gu­ra­ções pa­dro­ni­za­das em ambientes de de­sen­vol­vi­mento, teste e produção.
Um servidor de e-mail seguro, potente e confiável
  • Padrões de segurança mais altos
  • Crip­to­gra­fia au­to­má­tica com SSL/TLS
  • Data centers com cer­ti­fi­ca­ção ISO 27001 e com re­dun­dân­cia ge­o­grá­fica
  • IMAP e SMTP

Re­qui­si­tos de hardware para criar um servidor de e-mail Docker

Nota

Este tutorial é voltado para usuários com co­nhe­ci­mento técnico, fa­mi­li­a­ri­za­dos com Linux e Docker, que desejam uma in­fra­es­tru­tura de e-mail privada e flexível. Ele é es­pe­ci­al­mente relevante para de­sen­vol­ve­do­res, ad­mi­nis­tra­do­res de TI e pequenas empresas.

Para criar seu servidor de e-mail próprio, primeiro você precisa do hardware adequado. A potência ne­ces­sá­ria depende de diversos fatores, como o volume de e-mails esperado. Um endereço IPv4 estático é essencial para garantir uma co­mu­ni­ca­ção eficiente com outros ser­vi­do­res de e-mail. Além disso, é im­por­tante realizar uma con­fi­gu­ra­ção correta de DNS, incluindo registros MX, SPF, DKIM e DMARC. O suporte a IPv6 se torna cada vez mais relevante, pois garante a com­pa­ti­bi­li­dade e melhora a reputação dos e-mails enviados.

Tec­no­lo­gias re­co­men­da­das atu­al­mente

  • Imagem Docker: docker-mail­ser­ver/docker-mail­ser­ver:v13.2+
  • Pro­to­co­los 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 ope­ra­ci­o­nal base: Ubuntu 22.04 LTS, Debian 12 ou dis­tri­bui­ções Linux estáveis equi­va­len­tes
Dica

Você pode sim­pli­fi­car todo o processo usando o Docker mail server, uma stack open source bastante popular mantido pela co­mu­ni­dade. Ele inclui Postfix, Dovecot, rspamd, ClamAV e in­te­gra­ção opcional com LDAP em um único contêiner.

O que con­si­de­rar ao criar um servidor de e-mail Docker?

Re­co­men­da­ções de segurança

Para proteger seu servidor de e-mail, é fun­da­men­tal aplicar con­fi­gu­ra­ções de segurança de forma con­sis­tente, incluindo:

  • Utilizar cer­ti­fi­ca­dos TLS atu­a­li­za­dos (mínimo TLS 1.2, ide­al­mente TLS 1.3)
  • Con­fi­gu­rar e aplicar políticas SPF, DKIM e DMARC
  • Im­ple­men­tar limitação de taxa de envio e au­ten­ti­ca­ção via SASL
  • Habilitar conexões crip­to­gra­fa­das para IMAP/POP3 e SMTP
  • Con­fi­gu­rar logs com fer­ra­men­tas como rsyslog e rotação e ar­qui­va­mento es­tru­tu­rado de logs
Nota

Mesmo com a uti­li­za­ção de con­têi­ne­res Docker, uma con­fi­gu­ra­ção de segurança in­de­pen­dente é essencial. O Docker facilita a ins­ta­la­ção, mas não substitui o reforço de segurança do sistema, que inclui firewalls, per­mis­sões restritas, logs (ex.: via rsyslog) e atu­a­li­za­ções regulares.

Re­co­men­da­ções gerais de con­fi­gu­ra­ção

A con­fi­gu­ra­ção de um servidor de e-mail Docker exige co­nhe­ci­mento técnico e atenção especial à segurança. A seguir, alguns pontos es­sen­ci­ais:

  • Escolher uma imagem Docker apro­pri­ada e um stack de servidor de e-mail (ex.: docker-mail­ser­ver/docker-mail­ser­ver)
  • Con­fi­gu­rar os registros DNS (MX, SPF, DKIM, DMARC)
  • Proteger o host Docker (firewall, Fail2Ban, crip­to­gra­fia)
  • Escolher fer­ra­men­tas adequadas para ad­mi­nis­tra­ção e mo­ni­to­ra­mento
  • Realizar atu­a­li­za­ções e backups re­gu­lar­mente (incluindo a imagem Docker)
  • Con­fi­gu­rar entradas de registro de DNS reverso e suporte a IPv6
  • Atender aos re­qui­si­tos legais (ex.: LGPD

Hardware ne­ces­sá­rio

Para criar seu servidor de e-mail próprio no Docker, é ne­ces­sá­rio contar com hardware adequado. O de­sem­pe­nho ne­ces­sá­rio depende de fatores como o volume de e-mails enviados di­a­ri­a­mente e o número de usuários. Embora os con­têi­ne­res Docker sejam leves, ainda é ne­ces­sá­rio con­si­de­rar RAM, CPU e ar­ma­ze­na­mento. Serviços adi­ci­o­nais, como sistemas de backup ou filtros de conteúdo (ex.: antispam ou an­tiphishing), também exigem mais recursos. Além disso, você precisará de um endereço IPv4 estático para garantir boa co­mu­ni­ca­ção com outros ser­vi­do­res de e-mail — IPs dinâmicos podem gerar problemas na entrega de mensagens.

Dica

Quer dar um toque pro­fis­si­o­nal ao seu servidor de e-mail Docker? Um domínio per­so­na­li­zado é essencial para isso. Registre o seu domínio próprio com IONOS e obtenha um cer­ti­fi­cado SSL/TLS para o seu servidor de e-mail!

Ao escolher um ambiente adequado para o seu servidor de e-mail Docker, considere a ca­pa­ci­dade ne­ces­sá­ria. Uma con­fi­gu­ra­ção simples consegue lidar com poucos e-mails por dia, enquanto um servidor cor­po­ra­tivo exige bastante RAM, CPU e espaço de ar­ma­ze­na­mento.

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 em­pre­sa­rial 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 em­pre­sa­rial para uso exclusivo. Planos de vServer e Cloud Server, por sua vez, são baseados em recursos vir­tu­a­li­za­dos com­par­ti­lha­dos com outros clientes, mas sem prejuízo de de­sem­pe­nho!

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

Neste tutorial, usaremos o popular contêiner Docker docker-mail­ser­ver.

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 com­po­nen­tes im­por­tan­tes, 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-mail­ser­ver no diretório oficial do Docker Hub ou no re­po­si­tó­rio GitHub oficial da fer­ra­menta.

O re­co­men­dado é 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: Con­fi­gu­rar o docker-compose.yml

O próximo passo é con­fi­gu­rar o docker-compose.yml para definir os serviços e volumes ne­ces­sá­rios ao seu contêiner Docker. Aqui está um exemplo de con­fi­gu­ra­çã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 con­fi­gu­ra­ção garante que o contêiner Docker use as portas corretas para SMTP (25), IMAPS (993) e SMTP Sub­mis­sion (587), e que os volumes sejam mapeados cor­re­ta­mente para um ar­ma­ze­na­mento de dados per­sis­tente. Além disso, recursos de segurança como Fail2Ban e Let’s Encrypt SSL estão ativados.

Nota

Nos manuais oficiais do docker-mail­ser­ver no GitHub, você encontra uma lista detalhada de con­fi­gu­ra­çõ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 es­pe­ci­fi­ca­das. Essas são as portas con­ven­ci­o­nais 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 hos­pe­da­gem da IONOS, faça isso com toda fa­ci­li­dade, 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: Con­fi­gu­rar DNS

O passo seguinte é garantir que o serviço DNS do seu domínio esteja con­fi­gu­rado cor­re­ta­mente:

  • 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 al­ter­na­ti­va­mente você pode usar -all, se preferir uma política mais rígida.

Con­fi­gu­rar 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 con­fi­gu­ra­ções.
  4. Selecione “DNS.”
  5. Adicione os seguintes registros:
    • Registro MX: Destino = mail.exemplo.com, Pri­o­ri­dade = 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 al­te­ra­ções. Confirme as al­te­ra­ções e clique em “Reset now” – isso afetará somente os registros DNS atu­a­li­za­dos, não o domínio em si.

Dica

Quer arquivar seus e-mails co­mer­ci­ais com segurança? Com o IONOS Email Archiving, você pode arquivar au­to­ma­ti­ca­mente as caixas de correio se­le­ci­o­na­das em formato in­vi­o­lá­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 crip­to­gra­fia poderá ser usada depois para assinar mensagens di­gi­tal­mente.

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 cor­re­ta­mente:

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 con­fi­gu­ra­çõ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 com­pri­mento a 255 ca­rac­te­res por string, será ne­ces­sá­rio dividir a chave (como mostrado no exemplo).
  • Cer­ti­fi­que-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, é fun­da­men­tal con­fi­gu­rar também os registros SPF e DMARC para garantir uma proteção completa contra fal­si­fi­ca­ção de e-mails (spoofing).

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

Inicie o servidor de e-mail con­fi­gu­rado di­re­ta­mente pelo diretório do projeto com o seguinte comando:

docker-compose up -d
bash

Essas ins­tru­ções ajudarão você a con­fi­gu­rar, de forma segura e eficiente, tanto ambientes modernos baseados em con­têi­ne­res quanto ser­vi­do­res de e-mail tra­di­ci­o­nais.

Um servidor de e-mail seguro, potente e confiável
  • Padrões de segurança mais altos
  • Crip­to­gra­fia au­to­má­tica com SSL/TLS
  • Data centers com cer­ti­fi­ca­ção ISO 27001 e com re­dun­dân­cia ge­o­grá­fica
  • IMAP e SMTP
Ir para o menu principal