Docker Mailserver es una solución completa y configurable para implementar un servidor de correo electrónico usando Docker. Combina componentes populares como Postfix (para SMTP), Dovecot (para IMAP/POP3), SpamAssassin/ClamAV (filtrado de spam/virus), OpenDKIM/OpenDMARC (autenticación de correo) y otras herramientas en un contenedor fácil de gestionar. Está diseñado para simplificar la configuración y el mantenimiento de un servidor de correo autoalojado.
Si tenemos contratado un dominio, debemos configurar los siguientes registros en el servidor DNS:
; Registro A: mail IN A 10.11.12.13 ; Registro MX: @ IN MX 10 mail.example.com. ; Registro SPF: @ IN TXT "v=spf1 mx -all"
El registro MX le dice a todo el mundo qué nombre es responsable de los correos en tu dominio.
El registro A le dice a todo el mundo qué dirección IP resuelve el nombre DNS mail.example.com
Podemos verificar que la configuración es correcta utilizando el comando dig:
dig @1.1.1.1 +short MX example.org
Nos debería devolver mail.example.org.
Para verificar el registro A:
dig @1.1.1.1 +short A mail.example.com
Nos tendría que devolver la IP 11.22.33.44.
services: mailserver: image: ghcr.io/docker-mailserver/docker-mailserver:latest container_name: mailserver # Provide the FQDN of your mail server here (Your DNS MX record should point to this value) hostname: mail.midominio.com ports: - "25:25" # SMTP (explicit TLS => STARTTLS, Authentication is DISABLED => use port 465/587 instead) - "465:465" # ESMTP (implicit TLS) - "587:587" # ESMTP (explicit TLS => STARTTLS) - "993:993" # IMAP4 (implicit TLS) 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/ - /etc/localtime:/etc/localtime:ro environment: - ENABLE_RSPAMD=1 - ENABLE_CLAMAV=1 - ENABLE_FAIL2BAN=1 cap_add: - NET_ADMIN # For Fail2Ban to work healthcheck: test: "ss --listening --tcp | grep -P 'LISTEN.+:smtp' || exit 1" timeout: 3s retries: 0 restart: unless-stopped
docker exec -it <CONTENEDOR_MAILSERVER> setup email add usuario@midominio.com
Nos pedirá una contraseña para la nueva cuenta.
DomainKeys Identified Mail (DKIM) es un método de autenticación de correo diseñado para evitar el phising y spam.
Al utilizar DKIM, el correo entrante verificará e incluirá las firmas DKIM y el correo saliente irá firmado.
Para generar las claves es necesario tener una cuenta de correo ya creada.
Generación de claves con valores por defecto:
docker exec -it <CONTENEDOR_MAILSERVER> setup config dkim
Se habrá generado un fichero en ….
El contenido del fichero deberemos incluirlo en un registro DNS de tipo TXT